В этом посте мы подробно рассмотрим одну из важных, но редко используемых команд git git rebase.

Что такое git rebase?

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

git rebase baseBranch

Когда использовать git rebase?

Например, вы создали функциональную ветвь A из основной ветки, которая создаст дерево, как показано ниже:

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

Таким образом, чтобы выровнять историю основной ветки, вы можете использовать git rebase , что переместит ваши коммиты после коммитов, добавленных веткой B, как показано ниже:

Как использовать git rebase?

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

  1. перейти в ветку master из ветки feature A
git checkout master

2. Перейдите к последним изменениям из исходной ветки в вашей локальной основной ветке.

git pull origin master

3. Теперь снова вернитесь к своей функциональной ветке A и запустите команду rebase.

git checkout A
git rebase master

Приведенная выше команда перебазирует вашу ветку функций с главной веткой, и история вашей ветки будет обновлена.

Что делать, если перебазирование остановлено из-за конфликтов?

Если перебазирование остановлено из-за конфликта, вам необходимо разрешить конфликты и снова добавить изменения на этап, используя приведенную ниже команду.

git add filename

после добавления изменений в этап выполните команду ниже, чтобы продолжить

git rebase --continue

он продолжит процесс и завершит перебазирование.

Если вы хотите прервать перебазирование по какой-либо причине, выполните следующую команду:

git rebase --abort 

Отправить новые изменения в репозиторий:

После выполнения перебазирования вы можете отправить свои изменения в репозиторий с помощью следующей команды:

git push origin A --force

Мы используем здесь параметр —force, потому что мы обновили историю коммитов git, и чтобы перезаписать историю коммитов git, нам нужно принудительно отправить наши изменения.

Примечание.

  1. Если вы отправили свой код в репозиторий перед перебазированием, вам нужно только принудительно отправить код.

2. Убедитесь, что при принудительном нажатии кода никто другой не работает в той же ветке.

PS: Не рекомендуется принудительно вводить код.

Удачного обучения… :)