我看到过很多关于这方面的页面和帖子,但没有一个适用于我的数字海洋液滴。
我有一个使用Capistrano部署的实时rails应用程序,这意味着在部署之前我必须使用Git将其推送到服务器。所以Git是有效的。然而,现在我想用一些更改来更新网站,虽然远程回购是最新的(用git log
验证(,但web目录不是最新的。
我知道我需要把新文件传给那个目录,但怎么做呢?
挂钩/立柱接收:
#!/bin/sh
git checkout -f
纳达。我还运行了sudo ./post-receive
,只是为了确保后接收挂钩已执行(是的,它是可执行的(。无输出。只是另一个CLI提示。
为什么获取一个包含最新git推送的文件夹如此困难??
假设挂钩在myrepo.git/hooks
中的一个空存储库(没有检出文件的存储库(中,则缺少一行unset GIT_DIR
#!/bin/sh
unset GIT_DIR
cd /path/to/checkout/repository
git pull
git checkout -f
unset将确保Git将您的签出存储库视为当前存储库(而不是裸存储库(