我有一个git repo,它有很多分支,分别是master
和dev
,还有两个站点:mysite.example(master分支的工作副本)和dev.mysite.example(dev分支的工作副本).对于git push
钩子post-received
写入后的自动部署:
cd /var/www/mysite.example
unset GIT_DIR
git pull origin master
./deploy.sh
cd /var/www/dev.mysite.example
unset GIT_DIR
git pull origin dev
./deploy.sh
deploy.sh 执行的一些操作可能会花费很多时间。每次推送后(即使master和dev分支没有更新),钩子会运行deploy.sh两次。
如何检查工作副本是否被git pull更新?我不能使用git pull && ./deploy.sh
,因为git pull
对于“Already up to date”和update都返回0。
1条答案
按热度按时间yqyhoc1h1#
你可以使用
git ls-remote
来检查远程端给定分支的当前哈希值:你可以将哈希值与
git rev-parse <branch>
进行比较:您可能还希望异步运行操作: