我推送到一个裸存储库。从那里我使用post-receive钩子,它导致该服务器上的工作目录在裸存储库上进行拉/推。
这不仅通过更改更新工作目录,而且还将任何用户添加的内容推送到裸仓库(服务器)。
我没有运行它b.c它会导致无限循环,因为推送到服务器会再次启动post-receive挂钩。
我需要这只发生一次,而不是一遍又一遍。
以下是代码:
#!/bin/sh
# deprecated
# git --work-tree=~/public_html --git-dir=~/root.git checkout -f
# cd /home/username/root.git/hooks
# on a push to the server, run a pull/push to the apps working directory
(
cd ~/root
git pull ~/root.git master
git add -A .
git commit -m "automated commit on push"
git push ~/root.git master
)
echo "*"
echo "**"
echo "***"
echo "****"
echo "*****"
echo "success"
echo "*****"
echo "****"
echo "***"
echo "**"
echo "*"
有没有办法只根据一个条件运行钩子,即不是每次推送?
答案 0 :(得分:0)
假设您在特定用户推送的钩子中,那么您可以通过git log
检查上一次提交的作者:
LAST_USER=$(git log -1 --pretty=format:"%an")
如果是钩子使用的用户,则不要进行推送。