每个分支的Git提交钩子

26
我正在努力学习更高级的git用法,我觉得hooks可能是我想要的方式,也许有人可以给我一些建议。
我的计划是在一个git仓库中有3个分支(开发、暂存和生产)。我希望对这3个分支的每次提交都能触发不同的post-commit脚本。
Git是否有这个能力,还是我走错了方向?
2个回答

38
在提交后的钩子中,你可以做以下操作:
if [ `git rev-parse --abbrev-ref HEAD` == "development" ]; then
   echo "development-script"
elif [ `git rev-parse --abbrev-ref HEAD` == "staging" ]; then
   echo "staging-script"
elif [ `git rev-parse --abbrev-ref HEAD` == "production" ]; then
   echo "production-script"
fi

1

我曾经为自己编写了一个脚本来实现这个功能。

https://github.com/fotuzlab/githubdump-php

请将此文件托管在您的服务器上,最好是在存储库根目录,并在GitHub Webhooks中定义URL。将第8行的“allcommits”更改为您的分支名称,并在第18行添加您的代码/函数。

您需要为所有3个实例准备单独的文件和Webhooks。

希望这可以帮助您!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接