git 拉取时发生递归合并时不触发 commit-msg 挂钩
git commit-msg hook not triggering when recursive merge occurs on pull
我们正在使用 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 钩子?怎么让它自动触发钩子?
这个问题与递归合并策略无关(我认为这只是一个巧合)。如果您想了解有关递归合并策略的更多信息,请查看 this very good text about it.
问题的发生是因为 Git commit-msg 没有为合并提交执行挂钩 没有冲突 。您会在以下位置找到一个非常好的解决方法:
我们正在使用 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 钩子?怎么让它自动触发钩子?
这个问题与递归合并策略无关(我认为这只是一个巧合)。如果您想了解有关递归合并策略的更多信息,请查看 this very good text about it.
问题的发生是因为 Git commit-msg 没有为合并提交执行挂钩 没有冲突 。您会在以下位置找到一个非常好的解决方法: