Как разработчик 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
Важно отметить, что первоначальная фиксация слияния не была тривиальной, потому что между веткой версии и мастером очень много изменений; требуется усилие, чтобы разрешить такое слияние.
Выполнение вышеуказанной операции перебазирования вызывает конфликт слияния, и мне приходится разрешать его снова; это почти точно такая же работа, которую я уже сделал.
Есть лучший способ сделать это? Или я забыл очевидный вариант перебазирования?
D, E, M(z)
вместоD', E'
, но я предпочитаю сохранять историю как можно более чистой :) - person Ja͢ck   schedule 02.09.2014