Git Merge vs. Rebase vs. Squash Commit

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
8,528
Реакции
1,487
Credits
28,761
photo_2024-09-26_11-33-16.jpg
Git Merge vs. Rebase vs. Squash Commit

В чем разница?

Когда мы объединяем изменения из одной ветки Git в другую, мы можем использовать «git merge» или «git rebase». Диаграмма ниже показывает, как работают эти две команды.

Git Merge
Эта команда создает новый коммит G’ в основной ветке. G’ связывает историю обеих веток: основной и функциональной.

Git merge — это недеструктивная операция. Она добавляет новый коммит в основную ветку, не изменяя существующие коммиты в обеих ветках.

Git Rebase
Git rebase переносит историю коммитов функциональной ветки на конец основной ветки. Он создает новые коммиты E’, F’ и G’ для каждого коммита в функциональной ветке.

Преимущество rebase в том, что он создает линейную историю коммитов.

Однако будьте осторожны: следуйте золотому правилу Git Rebase — никогда не используйте его на общих ветках, чтобы избежать путаницы среди ваших коллег.

Git Squash Commit
Сквошинг сжимает несколько коммитов в один, упрощая историю коммитов.