🌿
IT и код

Как создать ветку и слить её в Git

⏱ 5 мин чтения👁 …Обновлено 30 июля 2026ИнфоЗал · База знаний

Ветка в Git — это подвижный указатель на коммит. Создание ветки не копирует файлы и занимает миллисекунды, поэтому ветвиться стоит под любую задачу, даже под правку опечатки.

Создать и переключиться

Современная команда для этого одна:

git switch -c feature/login

Флаг создаёт ветку и сразу переходит на неё. Старый способ через git checkout -b тоже работает, но switch появился именно для переключения и потому понятнее. Посмотреть список ветвей и текущую позицию можно командой git branch.

Перед созданием ветки убедитесь, что стоите на актуальной основной ветке: сделайте git switch main и git pull. Ветка, отросшая от устаревшего состояния, гарантирует лишние конфликты при слиянии — это самая частая причина мучений новичков.

Работа внутри ветки

  • git status — что изменено и что попадёт в коммит.
  • git add файл или git add -p для выборочного добавления кусков.
  • git commit -m "краткое описание" — фиксация изменений.
  • git push -u origin feature/login — первая отправка ветки на сервер, дальше достаточно git push.

Коммиты делайте маленькими и осмысленными: один коммит — одно логическое изменение. Так проще откатывать и читать историю.

Слияние

Переключитесь на целевую ветку, обновите её и влейте свою:

git switch main
git pull
git merge feature/login

Если в основной ветке ничего не менялось с момента ответвления, Git просто передвинет указатель — это называется быстрым слиянием. Если менялось, будет создан коммит слияния. После успешного вливания ветку можно удалить: git branch -d feature/login.

Merge или rebase

mergerebase
ИсторияСохраняется как было, с точками слиянияЛинейная, как будто писали подряд
БезопасностьНе меняет прошлые коммитыПереписывает их
Когда применятьОбщие ветки, куда смотрят другиеСвоя локальная ветка перед отправкой

Золотое правило: не переписывайте историю ветки, которую кто-то уже забрал себе. Для своей персональной ветки rebase удобен и даёт чистую историю.

Конфликт: что делать

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

  • Откройте файл, оставьте нужный код и удалите все маркеры конфликта.
  • Проверьте, что код работает — не просто «маркеры убраны».
  • git add файл, чтобы отметить конфликт решённым.
  • git commit для завершения слияния.
  • Если запутались, откатите всё командой git merge --abort и начните заново.

Полезные привычки

  • Называйте ветки по смыслу: feature/, fix/, refactor/ и краткое описание.
  • Держите ветку короткой по времени жизни: чем дольше живёт, тем больнее слияние.
  • Перед слиянием подтяните основную ветку в свою — конфликты разрешите у себя, а не в общей ветке.
  • Удаляйте влитые ветки, чтобы список не превращался в свалку.

Частые ошибки

  • Ответвляются от устаревшей основной ветки и получают горы конфликтов.
  • Делают rebase ветки, которую уже забрали коллеги.
  • Убирают маркеры конфликта, не проверив работоспособность кода.
  • Копят изменения неделями в одной ветке.
  • Работают прямо в основной ветке, потому что «правка маленькая».

Что запомнить

Обновите основную ветку, создайте свою через git switch -c, делайте небольшие коммиты, перед слиянием снова подтяните основную. Конфликты решаются вручную и завершаются через add и commit, а git merge --abort всегда даёт откатиться. Rebase — для своих локальных ветвей, merge — для общих.

Коротко: вопросы и ответы

Чем switch отличается от checkout? Checkout делает слишком много разного. Switch отвечает только за переключение ветвей, поэтому безопаснее.

Как удалить ветку на сервере? Командой git push origin --delete feature/login.

Можно ли восстановить удалённую ветку? Да, если коммиты ещё не собраны сборщиком мусора: найдите нужный коммит в git reflog и создайте ветку от него.

Была ли статья полезной?
Реклама

Комментарии