Разделитель Git отклонился после rebase, так зачем rebase?
Недавно я встретил уведомление о том, что моя ветка расходится. Это было тогда, когда я создал ветвь с функциями, нажал ее на удаленный компьютер и несколько дней спустя перестал работать с мастером, когда снова начал работать над ней.
git checkout -b feature-branch
git push origin feature-branch:feature-branch
... и когда у мастера...
git pull origin master
git checkout feature-branch
git rebase master
Но когда я хочу снова нажать свою ветку, он говорит:
On branch feature-branch
Your branch and 'origin/feature-branch' have diverged,
and have 67 and 1 different commit each, respectively.
Я нашел этот ответ в разделе Git, разбросанном после rebase":
Поскольку вы уже нажали на ветку, вы должны были объединиться в источник, а не переустанавливать его.
Вопрос
После прочтения this Я до сих пор не совсем понимаю, что я должен был сделать по-другому в своем потоке, и почему я все еще хочу используйте git rebase. Надеюсь, кто-то может это объяснить, спасибо!
Ответы
Ответ 1
Идея состоит в том, чтобы переустанавливать только, если вы еще не нажали, чтобы воспроизвести локальные коммиты.
Как только вы нажали (и работаете в команде), вы не должны переустанавливать ветвь поверх master
, так как она перезаписывает свой SHA1, заставляя вас принудительно нажимать новое состояние ветки.
![http://rypress.com/tutorials/ git/media/5-1.png]()
Создание git merge master
в вашей ветке предпочтительнее: вы разрешаете конфликты локально, затем можете совершать больше коммитов и регулярное нажатие.
![http://i.stack.imgur.com/wBMwq.png]()
Подробнее в разделе В чем разница между объединением master
в ветку и объединением ветки в master
?"