我目前正在添加一些自动化功能,在用户拉取或合并到当前分支之后执行(例如更新用户设置,构建更新的依赖项)。我阅读了钩子文档,并发现 pre-merge-commit / post-merge 钩子可以为我完成这项任务。因此,在我们没有合并冲突的情况下,即合并成功的情况下,这两个钩子都应该触发。
只要合并不对工作副本进行更改(作为合并结果),这种方法就可以正常工作。但是,如果有更改(例如添加了新文件),并且我使用 git merge 命令运行 --no-commit 选项,则 pre-merge-commit 和 post-merge 钩子都不会被执行。
至少对于 pre-merge-commit 钩子,我希望在提交之前触发钩子!
这是设计如此吗?是否有另一种方法可以在合并成功后触发脚本,而无需提交?
谢谢!
git merge --continue
以完成合并时运行。理想情况下,当您使用git commit
完成合并时,它甚至也应该运行。如果它对于任何一种情况都不运行,那似乎是一个明显的错误;如果它对于git merge --continue
运行但对于提交合并的git commit
不运行,那似乎也是一个错误,但可能更有争议。 - torek