在pull上发生递归合并时,git commit-msg挂钩不会触发

时间:2017-02-14 15:22:13

标签: git git-merge gerrit githooks commit-message

我们正在使用gerrit CI,它需要一个commit-msg钩子,它为每个提交消息添加一个Change-ID。

然而,有时当我们得到递归合并时,这会在reflog中显示如下:

767deb5 HEAD@{0}: pull: Merge made by the 'recursive' strategy.

当发生这种情况时,我们无法推送到我们的gerrit服务器,并收到以下消息:

 ! [remote rejected] HEAD -> refs/for/master ([767deb5] missing Change-Id in commit message footer)

通过修改最后一次提交,可以很容易地解决它。但这很乏味,令人沮丧。

我们如何避免这个问题?为什么递归合并策略不会触发commit-msg钩子?我们怎样才能让它自动触发挂钩?

1 个答案:

答案 0 :(得分:1)

这个问题与递归合并策略无关(我认为这只是巧合)。如果您想了解有关递归合并策略的更多信息,请查看this very good text about it

问题发生的原因是,没有为合并提交执行Git commit-msg挂钩没有冲突。您可以在https://stackoverflow.com/a/24692818/4653675

找到一个非常好的解决方法