Git перебазирование

Автор: | 24.04.2019

В гите есть два способа внести изменения из одной ветки в другую — это слияние (merge) и перебазирование (rebase).

Переключусь на ветку:

, и сделаю перебазирование:

Теперь послений коммит из мастер является предком последнего коммита из ветки exp т.е. exp перебазируется поверх master.

Альтернатива этому слияние или мержинг веток:

Если коммит в вашей ветке является потомком коммита в репозитории, то это будет слияние перемоткой (fast-forward):

В целом, по сравнению с мержингом, перебазирование делает историю коммитов чище. Если вы взгляните на историю перебазированной ветки, то увидите, что она выглядит абсолютно линейной, будто все операции были выполнены последовательно, даже если изначально они совершались параллельно.

Эта команда дает указание «переключиться на ветку client, то есть взять изменения от общего предка веток client и server и повторить их на master «. И потом сделать:

Также, можно делать перебазирование без предварительного переключения на перемещаемую ветку:

Делает ветку server текущей и применяет ее изменения к основной ветке:

Теперь можно удалить эти ветки, поскольку их наработки применены к ветке master:

ВАЖНО!!! Не перемещайте коммиты, уже отправленные в публичный репозиторий! Если вы будете придерживаться этого правила, то все будет хорошо. Иначе люди возненавидят вас, а ваши друзья и семья будут вас презирать.

Раздел: VCS Метки: