git push --force
- это факт жизни, когда речь идет о перебазировании и удаленных ветвях, потому что git push
не сделает без перемотки вперед без нее.Большинство вещей в git предполагают, что история только добавляется, никогда не редактируется, и rebase нарушает это предположение, поэтому вы должны сделать несколько довольно странных вещей, чтобы заставить ее работать.
Мы привыкли использовать рабочий процесс rebase очень похожийк тому, что вы описали, но через некоторое время снова переключились на рабочий процесс слияния.Перебазирование дает вам хорошую, симпатичную, линейную историю, но имеет много недостатков, таких как: --force
, потеря способности видеть состояние ветви до того, как вы сливаетесь с master, и так далее.
As AmberКак уже упоминалось, rebase сильно затрудняет работу с другими людьми в одной и той же ветке - прежде чем git push --force
ing, вам нужно посмотреть на состояние удаленной ветви, чтобы узнать, не подтолкнул ли ее кто-то другой сначала, и pull --rebase
что в, то git push --force
.Даже у этого есть условие гонки - если кто-то еще толкает прямо перед вами push --force
, ваши изменения будут перезаписаны вашим.