Повторити злиття лише одного файлу


112

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

Виявляється, я помилився, вирішуючи конфлікти в одному файлі, і я хотів би повторно вирішити конфлікт git mergetoolу цьому файлі. Оскільки це велике злиття, я б хотів уникнути повторного злиття на всіх інших файлах, як я розумію, я мав би це робити git merge --abort.

Я знаю, що я міг би просто відредагувати файл вручну, але це було б досить нудно, і було б набагато простіше просто повторити git mergetoolоперацію. Чи можливо це?


Відповіді:


181

Здається, я просто дивився в неправильному місці. Рішення виявилося досить простим.

git checkout -m <file>

Це повертає файл до конфліктного стану. Потім я можу бігти, git mergetoolщоб повторити злиття.


2
Цей вид працював для мене. Індекс опинився в об'єднаному стані, але mergetool не думав, що є якісь невирішені злиття. Я просто зробив злиття за допомогою vi, але все одно це було дивно.
Кріс Кліленд

1
спасибі! це саме те, що потрібно. До речі, ручне злиття з vi - це завжди задоволення і повністю задоволення. переміщення вліво або перехід вправо ніколи не давало мені впевненості, що злиття відбувається як очікувалося
asgs

1
У відповіді на це повторне запитання є кілька корисних додаткових деталей (з тією ж відповіддю) .
Джошуа Голдберг

-4

Ви завжди можете редагувати файли вручну.

Якщо ви використовуєте функцію git merge --no-commit, то у вас буде просто підготовлена ​​фіксація (після автоматичного та напівавтоматичного) злиття.

Ви все ще можете безпечно редагувати файли та виконувати зобов'язання лише тоді, коли повністю задоволені.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.