我们的一个约定是,当发生合并冲突时,在解决它之后,应该将原始的冲突差异添加到提交消息中,以帮助后来可能试图找出是否发生错误合并的开发人员。 / p>
我这样做的常用方法是
git diff >conflict_log
然后我将其复制粘贴到提交消息中。
我希望改进该工作流程的一些缺点:
conflict_log
,然后开发人员通常最终重做合并以获得原始差异我想做的是创建一个prepare-commit-msg
钩子,它会自动将这个差异添加到提交消息中。
我遇到的问题是,在prepare-commit-msg
运行时,索引已经更改,因此git diff
的工作方式不同,并且不再仅显示原始冲突。
我尝试过使用像
这样的版本git diff hash hash^1 hash^2
在此处的文档中:https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging 在"组合Diff格式"建议使用
git diff --cc
但我不确定,
我应该使用HEAD
,MERGE_HEAD
,ORIG_HEAD
,因为我在合并提交之前尝试在prepare-commit-msg
中执行此操作实际上已经承诺?
我希望在用户开始解析之前,从冲突解决中获取git生成的带有<<<<<<
标记的差异,但在prepare-commit-msg
运行时,用户已经分阶段他们的决议,有没有办法我可以采取差异对指数的状态,而不是当前的状态?