Как повторно объединить файл в git?

У меня есть 10 файлов, которые конфликтуют при объединении веток. Я разрешил все конфликты 10 файлов (долгое время). К сожалению, перед фиксацией я обнаружил, что один файл был объединен неправильно, и для этого файла нужно начать заново. :(

в Git, как пометить файл, который был объединен, как не объединенный, другими словами, как повторно объединить этот файл?


person Nyambaa    schedule 22.06.2011    source источник
comment
возможный дубликат повторить слияние только одного файла   -  person Milad Khajavi    schedule 20.07.2015


Ответы (1)


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

person X-Istence    schedule 22.06.2011
comment
+1 Сладко! Не знал о последней вещи с -m. Действительно очень полезно! - person ralphtheninja; 22.06.2011
comment
@Magnus Skog: я использовал его один или два раза, поэтому мне пришлось копаться в справочных страницах, чтобы найти его снова. - person X-Istence; 22.06.2011
comment
Хороший! Я тоже не знал об этом :) - person James Polley; 22.06.2011
comment
Спасибо, что сэкономили мне столько времени! - person Doug Voss; 10.01.2020