Обложка канала

Библиотека программиста

76290 @proglibrary

Библиотека программиста — обзоры книг, видеолекции и образовательные статьи, которые помогут вам улучшить процесс познания в разработке.

Библиотека программиста

3 года назад
Открыть в
Представьте, что вы начали работать над новой фичей в отдельной ветке, после чего другой участник команды добавляет новые коммиты в главную ветку main. Возникает история форков, знакомая каждому, кто использовал Git для совместной работы. А теперь предположим, что новые коммиты в ветке main затрагивают фичу, над которой вы работаете. Каким способом можно внести изменения из одной ветки в другую? В Git есть два способа сделать это: слияние или перебазирование. 📌 Способ слияния (merge) > git checkout feature > git merge main ➡️или в одну строку: git merge feature main Эта команда создает в ветке feature новый «коммит слияния», связывающий истории обеих веток. Это отличная неразрушающая операция, при которой существующие ветки никак не изменяются. Но! Каждый раз, когда вам будет необходимо включить вышестоящие изменения, в ветку feature будет попадать внешний коммит слияния. Если работа в главной ветке main ведется активно, история вашей ветки feature быстро засорится. 📌 Способ перебазирования (rebase) Вместо слияния можно выполнить перебазирование ветки feature на ветку main с помощью следующих команд: > git checkout feature > git rebase main В результате вся ветка feature окажется поверх ветки main, включая в себя все новые коммиты в ветке main. Если вместо команды merge при коммитах используется rebase, эта команда перезаписывает историю проекта, создавая новые коммиты для каждого коммита в исходной ветке. ☑️ Главное преимущество rebase — более чистая история проекта. Эта операция устраняет ненужные коммиты слияния, необходимые для git merge. #вопросы_с_собесов #easy