У меня есть 10 файлов, которые конфликтуют при объединении веток. Я разрешил все конфликты 10 файлов (долгое время). К сожалению, перед фиксацией я обнаружил, что один файл был объединен неправильно, и для этого файла нужно начать заново. :(
в Git, как пометить файл, который был объединен, как не объединенный, другими словами, как повторно объединить этот файл?
Ответ 1 · рейтинг 53 · X-Istence
git checkout -m <filename>
Это удалит его из индекса и вернется к "конфликтующему" файлу, в котором есть все маркеры, необходимые для последующего слияния.
На справочной странице git help checkout:
-m, --merge
When switching branches, if you have local modifications to
one or more files that are different between the current
branch and the branch to which you are switching, the command
refuses to switch branches in order to preserve your
modifications in context. However, with this option, a
three-way merge between the current branch, your working tree
contents, and the new branch is done, and you will be on the
new branch.
When a merge conflict happens, the index entries for
conflicting paths are left unmerged, and you need to resolve
the conflicts and mark the resolved paths with git add (or git
rm if the merge should result in deletion of the path).
When checking out paths from the index, this option lets you
recreate the conflicted merge in the specified paths.
(Последнее предложение самое важное).
Вот сообщение в блоге, в котором описывается, почему это было добавлено и почему это невозможно в более старых версиях git: http://gitster.livejournal.com/43665.html