git branch и git checkout
Команды для управления ветками (branch): создание, переключение, просмотр и удаление изолированных линий разработки.
Зачем нужно
Ветки позволяют разрабатывать фичи, исправлять баги и проводить эксперименты изолированно от основного кода. Изменения в одной ветке не влияют на другие до явного слияния (merge). Это основа любого командного workflow — каждая задача живёт в своей ветке, проходит ревью через Pull Request и только потом попадает в main.
Где используется
- Разработка каждой новой фичи в отдельной ветке
feature/... - Изоляция исправления бага в ветке
fix/...илиhotfix/... - Создание ветки для экспериментов без риска сломать рабочий код
- Gitflow: ветки
develop,release/*,hotfix/*
Основной контент
git branch — управление ветками
# Список локальных веток (* = текущая)
git branch
# Список всех веток (локальных и удалённых)
git branch -a
# Список только удалённых веток
git branch -r
# Создать новую ветку (без переключения)
git branch feature/auth
# Удалить ветку (только если слита)
git branch -d feature/auth
# Принудительно удалить ветку (даже не слитую)
git branch -D feature/auth
# Переименовать текущую ветку
git branch -m new-name
# Показать последний commit на каждой ветке
git branch -v
git checkout — переключение
# Переключиться на существующую ветку
git checkout main
# Создать ветку и сразу переключиться
git checkout -b feature/login
# Создать ветку от конкретного коммита или тега
git checkout -b hotfix/v1.2 v1.2.0
# Вернуть файл к состоянию в staging (отменить правки в рабочей директории)
git checkout -- src/app.js
# Вернуть файл к состоянию в конкретном коммите
git checkout abc1234 -- src/app.js
git switch — современная альтернатива (Git 2.23+)
# Переключиться на ветку
git switch main
# Создать и переключиться
git switch -c feature/search
# Вернуться к предыдущей ветке
git switch -
Типичный feature workflow
# 1. Обновить main
git switch main
git pull
# 2. Создать ветку для задачи
git switch -c feature/user-profile
# 3. Работать, коммитить
git add .
git commit -m "feat(profile): добавить страницу профиля"
# 4. Отправить на remote
git push -u origin feature/user-profile
# 5. После merge PR — удалить локальную ветку
git branch -d feature/user-profile
Частые ошибки
- Коммитить прямо в main — нарушение командного workflow; всегда создавай ветку для задачи
- Забыть переключиться перед началом работы — изменения окажутся в неправильной ветке; проверяй
git branchили смотри на подсказку shell - Удалить ветку до merge —
git branch -dзащищает от этого, но-Dудалит без вопросов - Длинное имя ветки со спецсимволами — используй только
a-z,0-9,/,-; пробелы недопустимы
Связанные темы
- _MOC Git
- git merge -- слияние веток
- git rebase -- основы
- git remote, push, pull
- Разрешение конфликтов