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 заключается в 𝐥𝐢𝐧𝐞𝐚𝐫 𝐜𝐨𝐦𝐦𝐢𝐭 𝐡𝐢𝐬𝐭𝐨𝐫𝐲.
Rebase может быть опасен, если не следовать "золотому правилу git rebase".
Золотое правило git rebase -
👉 @KodBlog | #ресурсы
Когда мы 𝐦𝐞𝐫𝐠𝐞 изменений из одной ветки Git в другую, мы можем использовать команды ‘git merge’ или ‘git rebase’. Диаграмма выше показывает, как работают эти две команды 👆
Git Merge: эта команда создает новый коммит G’ в основной ветке. G’ связывает истории обеих веток — основной и функциональной.
Git merge — 𝐧𝐨𝐧-𝐝𝐞𝐬𝐭𝐫𝐮𝐜𝐭𝐢𝐯𝐞. Никакие изменения не вносятся в основную или функциональную ветку.
Git Rebase: git rebase переносит историю функциональной ветки в начало основной ветки. Для каждого коммита в функциональной ветке создаются новые коммиты E’, F’ и G’.
Преимущество rebase заключается в 𝐥𝐢𝐧𝐞𝐚𝐫 𝐜𝐨𝐦𝐦𝐢𝐭 𝐡𝐢𝐬𝐭𝐨𝐫𝐲.
Rebase может быть опасен, если не следовать "золотому правилу git rebase".
Золотое правило git rebase -
Никогда не используйте его на публичных ветках!
👉 @KodBlog | #ресурсы