我正在尝试查找过去存在冲突的项目的 merge 修订。有没有比手动复制 merge 更简单的方法呢?因为我一直没能找到让 git show
只列出有冲突的文件(如果有的话)的方法。
最佳答案
一般情况下是不可能的。
唯一可靠的方法是重复 merge ,即使那样,您也必须知道一些从存储库本身无法知道的事情。特别是,您必须知道:
-X find-renames
的参数,如果有这样的参数的话- 是否提供了
-X ours
或-X theirs
-s
的参数,如果有的话
由于大多数 merge 不使用这些参数,您可以通过重复 merge 来获得非常接近的结果,这比任何替代方法都远容易。 (如果您有 git worktree add
或愿意进行克隆,则很容易实现自动化。)
(如果 git merge
将这些 merge 参数作为注释存储在 merge 提交的标题行中,那就太好了。Git 必须将它们保存在一个文件中,以便在中间停止的 merge ,但这显然是可能的。)
关于git - 如何获得 merge 提交时的冲突文件列表(事后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58573619/