Я пытаюсь объединить большую ветку темы в мастер, но мне нужна отдельная фиксация, которая показывает, как произошло разрешение конфликта. Цель состоит в том, чтобы иметь одну фиксацию, которая показывает, что "эти файлы противоречили друг другу и как они конфликтуют", и следующая фиксация будет показывать "это то, как конфликты были разрешены". То есть первая фиксация будет содержать маркеры конфликтов.
Причиной этого является то, что большая ветвь темы была рассмотрена и протестирована, как и главная ветвь. Из слияния мы хотим просмотреть только те части, которые нуждаются в некоторой работе (конфликты и другая работа слияния).
Вот что я делаю так:
git checkout master
git checkout -b merge-from-topic
git merge topic
Для записи файлов с конфликтами я использую временный файл:
git diff --name-only --diff-filter=U >conflicts.txt
Сначала я просто добавляю эти файлы с маркерами конфликтов в commit:
xargs git add <conflicts.txt
git commit
Затем я создаю другую ветку (для целей обзора), в которой я хотел бы разрешить конфликт:
git checkout -b resolve-merge-from-topic
Чтобы восстановить конфликты, я попробовал
xargs git reset HEAD^ -- <conflicts.txt
но затем git mergetool сказал, что ни один из файлов не нуждается в слиянии, хотя файлы в моем рабочем дереве имеют маркеры конфликтов.
Как восстановить файлы, перечисленные в файле conflicts.txt, чтобы я мог использовать git mergetool на них?
Я также открыт для других способов получения эффекта "отдельного фиксации для разрешения конфликтов".