Главная Категории Контакты Поиск

Как обновить свою ветку последними изменениями с основной ветки

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

Git·09.07.2019·читать 1 мин 🤓·Автор: Alexey Myzgin

Обычно, когда разрабатывается какой-то функционал, создается отдельная ветка, которая ответвляется от основной линии разработки - master или develop (мы будем использовать master). Однако, чем дольше мы работаем над своей веткой, тем больше будет окончательное слияние (merge).

Когда мы работаем в команде, то очень часто коллеги добавляют изменения в репозиторий. Для того, чтобы стянуть последние изменения, нужно перейти на основную ветку master и сделать git pull.

Хорошей практикой является создание отдельной ветки для разработки наших новых функциональностей или даже обратных исправлений. Тем не менее, настоятельно рекомендуется синхронизировать её с основной линией разработки, которая может быть master или с какой-либо отдельной веткой, как можно чаще.

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

Для обновления своего кода, прежде всего, нужно стянуть все изменения. Нам нужно убедиться, что мы синхронизированы и обновлены. Будучи на основной ветке master, делаем:

git pull
# Already up to date.

Затем переходим на нашу ветку разработки. Теперь для синхронизации с веткой master у нас есть разные возможности.

# в нашем случае имя_основной_ветки - master
# git merge имя_основной_ветки
git merge master

Настоятельно рекомендуется так делать, если это общая ветка. Если мы пушнем данные изменения в удаленный репозиторий origin/master, то другие разработчики тоже смогут работать над этим же кодом.

Однако, если эта ветка только наша и над ней работаем только мы, тогда можно использовать команду git rebase: возьмёт каждый коммит из master и объединит их поверх коммитов в нашей ветке.

В результате наша ветка будет просто смещена вверх, как если бы мы только что создали её из последней версии master ветки. Однако, это действие меняет id этих же коммитов. Опять же, желательно делать git rebase только в том случае, если у нас личная ветка и она не делится с другими.

Давай выполним rebase. Будучи на ветке разработки делаем git rebase с master.

git rebase master

Что он делает? - перематывает HEAD и заменяет нашу работу поверх master:

First, rewinding head to replay your work on top of it...
Applying:

Теперь наши коммиты содержат все последние изменения, произошедшие в master.

Website, name & logo
Copyright © 2022. Alex Myzgin