Содержание
Зачем нужны ветки
Ветка — изолированная копия кода. Делаешь новую фичу в своей ветке, не трогая рабочий код в main. Если что-то пошло не так — просто удаляешь ветку. (Перед первым коммитом проверь .gitignore — мусор в репозитории потом сложно вычистить.)
Основные ветки
main (или master)
Главная ветка. Здесь всегда рабочий, продакшн-готовый код. Никогда не коммить сюда напрямую — только через merge или PR.
develop
Ветка для разработки. В неё вливаются все завершённые фичи. Когда накопился релиз — mergим в main. Используется в командах, для соло-проектов часто не нужна.
Как называть ветки
# Новая фича
feature/user-authentication
feature/dark-mode
# Исправление бага
fix/login-redirect
fix/mobile-menu
# Срочный хотфикс в продакшн
hotfix/payment-crash
# Рефакторинг
refactor/api-layer
Типичный рабочий процесс
# 1. Синхронизируемся с main
git checkout main
git pull origin main
# 2. Создаём ветку для новой фичи
git checkout -b feature/new-navbar
# 3. Работаем, коммитим
git add .
git commit -m "feat: add responsive navbar"
# 4. Пушим ветку
git push -u origin feature/new-navbar
# 5. Создаём Pull Request на GitHub
# 6. После ревью — merge в main, удаляем ветку
Merge vs Rebase
Merge — создаёт merge-коммит, сохраняет полную историю. Подходит для публичных веток. (Развёрнутое сравнение с примерами из реального проекта — в статье rebase vs merge.)
git checkout main
git merge feature/new-navbar
Rebase — перемещает коммиты фичи поверх main, история становится линейной. Подходит для локальных веток до пуша.
git checkout feature/new-navbar
git rebase main
⚠️ Никогда не делай rebase публичных веток, в которые пушили другие — это перепишет историю и создаст конфликты у всех.
Удаление веток
После мержа ветки лучше удалять — они засоряют список.
# Удалить локально
git branch -d feature/new-navbar
# Удалить на remote
git push origin --delete feature/new-navbar
💡 В настройках репозитория на GitHub есть опция «Automatically delete head branches» — ветки удаляются автоматически после merge PR. Все команды из этой серии одной страницей — в git-шпаргалке.
Обсуждение
Пока нет комментариев. Будьте первым.