Схема коммитов до объединения веток
Branches.clean.jpg
git checkout master
git merge develop
Ветка master
Вливаем ветку develop в ветку master. Приоритет ветки master.
Недостающие коммиты из ветки develop как-бы "налипают сверху" на ветку master. Даты коммитов прежние.
Develop.to.master.jpg
git checkout develop
git merge master
Ветка develop
Вливаем ветку master в ветку develop. Приоритет ветки develop.
Недостающие коммиты из ветки master как-бы "налипают сверху" на ветку develop. Даты коммитов прежние.
Master.to.develop.jpg
Схема коммитов до перебазирования
Branches.clean.jpg
Ветка master
Перебазируем коммиты ветки develop в ветку master.
Ветка master перестраивается от начала по приоритету ветки develop,
а коммиты, которые имелись в ветке master, но отсутствуют во встраиваемой ветке develop
пересоздаются с новым hash и датой от последнего нового коммита встраиваемой ветки develop
Develop.rebase.to.master.jpg
Ветка develop
Перебазируем коммиты ветки master в ветку develop
Ветка develop перестраивается от начала по приоритету ветки master,
а коммиты, которые имелись в ветке develop, но отсутствуют во встраиваемой ветке master
пересоздаются с новым hash и датой от последнего нового коммита встраиваемой ветки master
Master.rebase.to.develop.jpg
Основное требование при использовании git rebase:
Не производить git rebase с ветками которые вы уже отправили в общий репозиторий.