Управление ветками¶
Ветки (branches) — это одна из ключевых возможностей Git, позволяющая вести параллельную разработку разных функций без влияния друг на друга.
Что такое ветка?¶
Ветка — это легковесный подвижный указатель на коммит. Когда вы создаете ветку, Git не копирует файлы, а просто создает новый указатель. Переключение между ветками меняет файлы в рабочей папке на состояние, соответствующее коммиту, на который указывает ветка.
Основные команды¶
Просмотр веток¶
# Список локальных веток
git branch
# Список всех веток (локальные + удаленные)
git branch -a
# Подробный список с последним коммитом
git branch -v
Текущая ветка помечена звездочкой *.
Создание ветки¶
# Создать новую ветку, оставаясь в текущей
git branch <имя-ветки>
# Создать и сразу переключиться на неё (рекомендуется)
git checkout -b <имя-ветки>
# Современный способ (Git 2.23+)
git switch -c <имя-ветки>
Переключение между ветками¶
# Классический способ
git checkout <имя-ветки>
# Современный способ (только для переключения)
git switch <имя-ветки>
Переключение на предыдущую ветку¶
Быстрый способ вернуться назад:
git checkout -
# или
git switch -
Удаление веток¶
# Удалить локальную ветку (если она полностью слита)
git branch -d <имя-ветки>
# Принудительное удаление (если есть несохраненные изменения)
git branch -D <имя-ветки>
# Удалить удаленную ветку
git push origin --delete <имя-ветки>
Типичный рабочий процесс (Feature Branch Workflow)¶
-
Создание ветки для новой задачи:
bash git checkout main git pull origin main git checkout -b feature/login-form -
Разработка и коммиты: Делайте коммиты в своей ветке.
-
Слияние с основной веткой: После завершения работы вернитесь в
mainи сделайте merge (см. раздел Слияние).
Именование веток¶
Хорошие практики именования:
- feature/название-фичи — для новых функций.
- bugfix/описание-бага — для исправлений ошибок.
- hotfix/критическое-исправление — для срочных исправлений на проде.
- docs/обновление-документации — для правки документации.
- refactor/рефакторинг-модуля — для рефакторинга.
Используйте нижние дефисы (-) вместо пробелов или подчеркиваний.
Ветки и удаленный репозиторий¶
Отправка ветки на сервер¶
git push -u origin <имя-ветки>
Флаг -u связывает локальную ветку с удаленной, чтобы в будущем можно было писать просто git push.
Получение веток с сервера¶
# Скачать все ветки, но не переключаться
git fetch
# Скачать и переключиться на существующую удаленную ветку
git checkout <имя-ветки>
# Git автоматически создаст локальную ветку, отслеживающую удаленную