I'm trying to merge a big topic branch into the master, but I want a separate commit that shows how the conflict resolution happened. The goal is to have one commit that shows "these files conflicted and how they conflicted" and the next commit would show "this is how the conflicts were resolved". I.e. the first commit would contain the conflict markers.
The reason for this is that the big topic branch has been reviewed and tested, as has the master branch. Of the merge, we want to review only the parts that needed some work (conflicts and other merge work).
Here's what I'm doing this far:
git checkout master
git checkout -b merge-from-topic
git merge topic
To record the files that have conflicts, I use a temporary file:
git diff --name-only --diff-filter=U >conflicts.txt
First I simply add those files, with the conflict markers, to a commit:
xargs git add <conflicts.txt
git commit
Then I create another branch (for review purposes) in which I'd like to do the conflict resolution:
git checkout -b resolve-merge-from-topic
To restore the conflicts, I tried
xargs git reset HEAD^ -- <conflicts.txt
but then git mergetool said that none of the files need merging although files in my working tree had conflict markers.
How do I restore files listed in conflicts.txt, so that I can use git mergetool on them?
I'm also open to other ways of getting the "separate commit for conflict resolution" effect.