Хорошо, я думал, что это был простой сценарий мерзавца, что я пропускаю?
У меня есть master
ветвь и ветвь feature
. Я делаю некоторую работу над master
, некоторые - над feature
, а затем еще немного над master
. Я получаю что-то вроде этого (лексикографический порядок подразумевает порядок коммитов):
A--B--C------F--G (master)
\
D--E (feature)
У меня нет проблем ни с git push origin master
чтобы поддерживать удаленный master
обновленным, ни с git push origin feature
(когда она feature
), чтобы поддерживать удаленное резервное копирование для работы моей feature
. До сих пор у нас все хорошо.
Но теперь я хочу, чтобы перебазировать feature
на вершине F--G
совершающий на мастере, так что я git checkout feature
и git rebase master
. Все еще хорош. Теперь у нас есть:
A--B--C------F--G (master)
\
D'--E' (feature)
Проблема: в момент, когда я хочу сделать резервную копию новой перебазированной feature
разветвленной с git push origin feature
, push отклоняется, так как дерево изменилось из-за перебазировки. Эту проблему можно решить только с git push --force origin feature
.
Я ненавижу использовать --force
не будучи уверенным, что мне это нужно. Так мне это нужно? Обязательно ли перебазировка подразумевает, что следующий push
должен быть --force
?
Эта ветвь функций не используется другими разработчиками, поэтому де-факто у меня нет проблем с принудительным нажатием, я не собираюсь терять какие-либо данные, вопрос более концептуальный.