Как разработчик на PHP-Src Недавно я нашел себя в следующей ситуации:перебазироваться на предыдущих изменения с нетривиальным слиянием совершает настоящий локально
A B C
o---o---o version1
\
o---o-----o---o master
x y D E
o---o---o upstream/master
x y z
Так что, когда я git push --dry-run upstream master version1
я получаю типичный:
! [rejected] master -> master (fetch first)
Мой естественный ответ перебазироваться пораженную ветвь и сохранить слияние совершает:
git fetch upstream
git rebase -p upstream/master
Важно отметить, что первоначальная фиксация слияния не была тривиальной, потому что существует так много изменений между ветвью версии и мастером; он предпринимает усилия для разрешения такого слияния.
Выполнение вышеуказанной операции перезаписи вызывает конфликт слияния, и я должен снова разрешить его; это почти то же самое, что я уже сделал.
Есть ли лучший способ сделать это? Или я забыл очевидный вариант переустановки?
У вас есть * для восстановления? Я обычно переустанавливаю, но я тоже был в вашей ситуации, когда это было просто невозможно, и затем пошел со стандартным слиянием. – musiKk
Конечно, я могу просто нажать 'D, E, M (z)' вместо 'D ', E'', но я предпочитаю сохранить историю как можно чистую, как я могу :) –
Я вас слышу. Это зависит от вашего дела. Я работал над слияниями, которые занимали часы. Моя любовь к чистой истории идет только до сих пор. :) – musiKk