Я бы не пытался оправиться от работы вашего друга, а скорее повторить слияние с нуля.
Найдите объединенный коммит вашего друга и используйте git log --graph
или git log --format=fuller
, чтобы определить его родительские коммиты:
Например, у меня есть 39184c481a
, который является объединением 2aa69455a3
в 1d3c2f45f6
.
git log --format=fuller 39184c481a
commit 39184c481a
Merge: 1d3c2f45f6 2aa69455a3
Author: ...
Затем извлеките первоначального первого родителя и объедините в него другого родителя
git checkout 1d3c2f45f6
git merge 2aa69455a3
и теперь я нахожусь в том же состоянии, в котором находился, когда был сделан коммит. Отсюда вы сможете повторить разрешение конфликта.
Возможно, вы захотите дать себе ветку, чтобы позже найти эту работу:
git checkout -b dev.fixing-the-merge
И в конечном итоге объединить это обратно с вашей основной веткой, или, возможно, переписать историю с git push --force
, если ваша команда готова позволить вам сделать это.