Git为每个分支提交钩子

时间:2011-06-16 13:04:16

标签: git branch post-commit githooks

我正在努力进一步使用git,我认为钩子是我想要的方式,也许有人可以在这里给我一些建议。

我的计划是拥有一个包含3个分支(开发,登台和生产)的git存储库。我希望提交这3个分支中的每个分支以在提交后触发不同的脚本。

git是否有能力做到这一点,还是我咆哮错误的树?

提前致谢。

2 个答案:

答案 0 :(得分:33)

在提交后挂钩中,您可以执行以下操作:

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 :(得分:1)

我为自己编写了一个脚本来执行此功能。

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

在您的服务器上托管此文件,最好是repo root并在github webhooks中定义url。使用您的分支名称更改第8行的'allcommits',并在第18行添加您的代码/功能。

您的所有3个实例都需要单独的文件和webhook。

希望这有帮助!