Как слить одну ветку в другую с помощью git merge?
Доделал фичу в ветке feature, теперь надо влить её в main. Не пойму, на какой ветке запускать merge и в каком направлении. Как правильно слить ветку в main?
2 ответа
Главное правило: сначала переключись на ветку, КУДА вливаешь, потом мёрджи ту, ОТКУДА берёшь.
Чтобы влить feature в main:
git checkout main
git merge feature
Читается как «находясь на main, влей сюда feature». Направление — «куда» это текущая ветка, «откуда» это аргумент merge.
Перед слиянием полезно обновить main, чтобы не вливать в устаревшее:
git checkout main
git pull
git merge feature
Если всё прошло гладко — git сделает либо «fast-forward» (просто передвинет указатель), либо создаст merge-коммит. После успешного слияния ветку можно удалить:
git branch -d feature
Частая ошибка: перепутать направление — встать на feature и написать git merge main. Тогда ты вольёшь main в feature, а не наоборот, и main останется без твоих изменений. Всегда спрашивай себя: «на какой ветке я стою?» (проверь git branch) — именно туда попадут изменения.
Запомни схему: git merge тянет изменения в текущую ветку.
- Хочешь обновить main фичей: встань на main, мёрдж feature.
- Хочешь подтянуть свежий main в свою feature: встань на feature, мёрдж main.
Если работаешь в команде через GitHub/GitLab, обычно слияние в main делают не локально, а через Pull Request — так его смогут проверить ревьюеры.