Ребазинг веток в Git

Опубликовано: 30 Ноября, 2021

Ветвление означает отделение от основной ветки, чтобы вы могли работать отдельно, не затрагивая основной код и других разработчиков. При создании репозитория Git по умолчанию нам назначается главная ветка. Когда мы начинаем делать коммиты, эта главная ветвь продолжает обновляться и указывает на последний коммит, сделанный в репозиторий.
Ветвление в Git выглядит так:

Ребазинг

Ребазинг в Git - это процесс интеграции серии коммитов поверх другой базовой подсказки. Он берет все коммиты ветки и добавляет их к коммитам новой ветки. Перебазирование Git выглядит следующим образом:

Технический синтаксис команды rebase:

git rebase [-i | –interactive] [ options ] [–exec cmd] [–onto newbase | –keep-base] [upstream [branch]]

Применение:
Основная цель перебазирования - поддержание последовательной и чистой истории проекта. Ребазинг приводит к идеально линейной истории проекта, которая может следовать за конечной фиксацией функции вплоть до начала проекта, даже без разветвления. Это упрощает навигацию по вашему проекту.

Стандартный и интерактивный перебазирование

Git rebase находится в интерактивном режиме, когда команда rebase принимает аргумент - i. Это расшифровывается как Interactive. Без аргументов команда запускается в стандартном режиме.

Чтобы добиться стандартного перебазирования, мы выполняем следующую команду:

 git rebase master branch_x

где branch_x - это ветка, которую мы хотим перебазировать

Вышеупомянутая команда эквивалентна следующей команде и автоматически принимает коммиты в вашей текущей рабочей ветке и применяет их к заголовку ветки, которая будет упомянута:

 git rebase master

Принимая во внимание, что в интерактивном перемещении вы можете изменять отдельные коммиты по мере их перемещения в новую ветку. Он предлагает вам полный контроль над историей фиксации ветки.
Чтобы добиться интерактивного ребазинга, мы выполняем следующую команду:

 git checkout branch_x
git rebase -i мастер

Эта команда выводит список всех коммитов, которые собираются переместить, и просит перебазировать все коммиты по отдельности, а затем перебазировать их в соответствии с выбранными вами вариантами. Это дает вам полный контроль над тем, как выглядит история вашего проекта.

Слияние с ребейзингом

Как слияние, так и перебазирование используются для слияния ветвей, но разница заключается в истории коммитов после интеграции одной ветки в другую. При слиянии Git коммиты всех разработчиков, которые сделали коммиты, будут в журнале git. Это действительно хорошо для новичков, потому что любой разработчик может откатить голову для фиксации. В то время как в git rebase фиксация только от одного разработчика будет отмечена в журнале git. Опытные разработчики предпочитают это, потому что это делает историю коммитов линейной и чистой.
Команда для слияния задается как:

 git merge branch_x master

Это создает новую фиксацию в объединенной ветке, которая связывает воедино истории обеих веток, давая вам структуру ветвей, которая выглядит следующим образом, в отличие от того, что мы видели выше:

Note: After performing rebasing, we are by default on the last commit of the rebased branch.