我正在尝试将一个大主题分支合并到主分支中,但我想要一个单独的提交来显示冲突解决是如何发生的。目标是让一个提交显示“这些文件冲突以及它们如何冲突”,而下一个提交将显示“这就是解决冲突的方式”。即第一次提交将包含冲突标记。
这样做的原因是大主题分支已经过审查和测试,主分支也是如此。在合并中,我们只想查看需要一些工作的部分(冲突和其他合并工作)。
这是我目前正在做的事情:
git checkout master
git checkout -b merge-from-topic
git merge topic
为了记录有冲突的文件,我使用了一个临时文件:
git diff --name-only --diff-filter=U >conflicts.txt
首先,我只是将这些带有冲突标记的文件添加到提交中:
xargs git add <conflicts.txt
git commit
然后我创建另一个分支(用于审查目的),我想在其中解决冲突:
git checkout -b resolve-merge-from-topic
为了恢复冲突,我尝试了
xargs git reset HEAD^ -- <conflicts.txt
但随后git mergetool说,尽管我的工作树中的文件有冲突标记,但没有一个文件需要合并。
如何恢复 conflict.txt 中列出的文件,以便可以对它们使用git mergetool?
我也对其他获得“解决冲突的单独提交”效果的方法持开放态度。