2016-12-15 17 views
1

Я перестраиваю сложную функцию в другую ветку, используя git cherry-pick. При попытке разрешить конфликты в большом коммите я обнаружил, что я пропустил какой-то другой фиксатор, который должен быть применен первым.Изменения тары во время разрешения конфликта

Невозможно stash текущее состояние, примените другой фиксатор, а затем выполните stash pop.
Я мог бы сделать cherry-pick --abort, применить другую фиксацию, а затем вишнево-выбрать ее снова, но я бы потерял эти разрешенные конфликты.

Каков наилучший способ справиться с такой ситуацией?

+0

«Должно быть» или «должно быть»? Если первое, продолжайте, то исправьте ситуацию, когда вы приняли решение. – j6t

+0

Пропущенный коммит уже имеет дело с некоторыми конфликтами, мне не придется иметь дело с ними вручную. –

+0

Я сделал большие конфликтующие слияния в прошлом и в той же ситуации, что и вы описываете. Я укусил пулю и завершил слияние. Затем перемотайте, примените полезную другую фиксацию, а затем скорректируйте слияние. К счастью, машина 'reerere' автоматически решает многие из коммитов. – j6t

ответ

1

j6tadvice, вы можете выполнить повторную перемотку, снова применить другие фиксации и вишневый захват.

Идея состоит в том, чтобы убедиться, что git rerere активен, чтобы избежать разрешения конфликтов слияния снова и снова.

Если вы не активировали rerere, у вас есть rerere-train.sh script I mentioned before, чтобы не забыть разрешение конфликтов вашего первого раунда слияний.