Возобновление разрешения конфликта слияния позже

Ситуация

Я объединяю файлы и остановился, потому что пора заканчивать, но я еще не закончил слияние.

Проблема

Я хотел убедиться, что смогу возобновить слияние, но не смог найти никакой информации об этом в Интернете, поэтому попробовал сам. В результате у меня теперь есть частично объединенный файл и .orig, но не измененный локальный или удаленный.

Вопрос

Как мне возобновить это частичное разрешение конфликта слияния без необходимости начинать все сначала?

Что я и сделал, собственно.

Я объединил коммит с текущей веткой. Затем я запустил git mergetool, который равен meld. Я сказал: «Угу… уже поздно, я могу закончить завтра». и сохранил все три файла. Затем я подумал: «Может быть, мне следует проверить, чтобы убедиться, что я МОГУ возобновить завтра», поэтому я снова пытаюсь git mergetool, но он говорит мне, что файлы не нужно объединять.

Затем я ничего не делаю и оставляю его в незафиксированном состоянии, думая, что в этот момент я могу только причинить больше вреда.

Что я нашел.

Самое близкое, что я нашел, что может быть полезно, это слияние после неправильного ручного разрешения конфликта слияния, что не особенно полезно.

Это предполагает, что я сохраняю то, что у меня есть в другом месте (например, mv file file.bu), делаю полный сброс, перемещаю файл резервной копии на место, затем снова пытаюсь выполнить слияние, чтобы мне, по крайней мере, не нужно было начинать все сначала.

Однако, поскольку я еще не совершил, в отличие от этого плаката, я полагаю, что могу сделать больше.


person Nero gris    schedule 16.11.2018    source источник
comment
Поддержка Git для приостановки и возобновления слияний не очень хороша. Я предпочитаю избегать git mergetool, который настаивает на выполнении всех файлов без остановки. Если вы помните, какие файлы были сделаны, а какие нет, может быть способ относительно простого восстановления, но вам все равно придется полностью объединять любой файл, когда вы позволяете git mergetool управлять операциями.   -  person torek    schedule 16.11.2018
comment
Был только один грязный файл. В общем, я стараюсь избегать слияния (или даже фиксации) более одного файла за раз, если только изменения не являются тривиальными.   -  person Nero gris    schedule 16.11.2018
comment
В этом случае сохраните частичное слияние (переместите обновленный файл в сторону) и используйте git checkout -m <file> для восстановления состояния конфликта слияния и отсутствия слияния. Затем вы можете снова запустить git mergetool или просто отредактировать частично объединенный файл и использовать свой дополнительный файл слияния, чтобы вернуться к процессу слияния.   -  person torek    schedule 16.11.2018
comment
По какой-то причине это не сработало, и я просто начал с самого начала. В следующий раз просто буду осторожнее.   -  person Nero gris    schedule 18.11.2018
comment
Странно. Это предполагает, что Git каким-то образом потерял запись отмены (REUC) из индекса. Я не думаю, что git mergetool делает что-то, что могло бы вызвать это, но здесь я могу ошибаться.   -  person torek    schedule 18.11.2018


Ответы (1)


Поскольку вы сохранили файлы, самым простым вариантом может быть перезапуск слияния.

person tymtam    schedule 16.11.2018