Повторить слияние только одного файла

112

Я нахожусь в середине большого слияния, и я использовал git mergetoolдля разрешения всех конфликтов, но я еще не зафиксировал, так как я хотел сначала убедиться, что слияние прошло нормально.

Оказывается, я допустил ошибку при разрешении конфликтов в одном файле, и я хотел бы повторить разрешение конфликтов с помощью git mergetoolэтого файла. Поскольку это большое слияние, я бы не хотел повторять слияние для всех других файлов, поскольку, как я понимаю, мне придется иметь дело с git merge --abort.

Я знаю, что могу просто отредактировать файл вручную, но это было бы довольно утомительно, и было бы намного проще просто повторить git mergetoolоперацию. Это возможно?

хаммар
источник
1
Возможный дубликат Как повторно объединить файл в git?
jocull

Ответы:

181

Кажется, я просто искал не в том месте. Решение оказалось довольно простым.

git checkout -m <file>

Это возвращает файл в конфликтное состояние. Затем я могу бежать, git mergetoolчтобы повторить слияние.

хаммар
источник
2
Это сработало для меня. Индекс оказался в состоянии слияния, но mergetool не подумал о каких-либо невыполненных слияниях. Я только что сделал слияние с помощью vi, но все равно это было странно.
Крис Клиленд,
1
Спасибо! это именно то, что нужно. Кстати, ручное слияние с vi всегда доставляет удовольствие и полностью удовлетворяет. сдвиг влево или вправо никогда не давал мне уверенности в том, что слияние идет, как ожидалось
asgs
1
В ответе на этот повторяющийся вопрос есть несколько полезных дополнительных деталей (с тем же ответом) .
Джошуа Голдберг
-4

Вы всегда можете редактировать файлы вручную.

Если вы используете git merge --no-commit, то у вас будет просто подготовленный коммит (после автоматического и полуавтоматического) слияния.

Вы по-прежнему можете безопасно редактировать файлы и делать коммит только тогда, когда полностью удовлетворены.

Шимон Тот
источник