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