Что такое ветки (branches) в Git?

«Что такое ветки (branches) в Git?» — вопрос из категории DevOps, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Ветки (branches) в Git — это легковесные подвижные указатели на определённые коммиты. Они позволяют создавать изолированные среды для разработки новой функциональности, экспериментов или исправления ошибок, не затрагивая основную стабильную версию кода (часто это ветка main или master).

Аналогия: Представьте, что история коммитов — это ствол дерева. Ветка — это ответвление от этого ствола, где вы можете вести свою работу независимо.

Базовый рабочий процесс (Feature Branch Workflow):

# 1. Создать новую ветку для задачи (ответвиться от актуального main)
git checkout main
git pull origin main          # Обновить локальный main
git checkout -b feature/login # Создать и переключиться на ветку feature/login

# 2. Вести работу в новой ветке: делать коммиты
git add .
git commit -m "Implement login form UI"

git add .
git commit -m "Add authentication logic"

# 3. Запушить ветку в удалённый репозиторий
git push -u origin feature/login

# 4. Создать Pull Request (GitHub) / Merge Request (GitLab) для code review
# 5. После одобрения выполнить слияние (merge) feature/login в main

Почему это важно:

  • Изоляция изменений: Работа над feature/login не сломает main.
  • Параллельная разработка: Несколько разработчиков могут работать над разными ветками одновременно.
  • Контроль качества: Ветки — основа для Code Review через Pull/Merge Requests.
  • Управление релизами: Через ветки организуют стабильные версии (release/v1.2) и экстренные исправления (hotfix/critical-bug).

Ключевые команды:

  • git branch — показать список веток.
  • git checkout <branch> или git switch <branch> — переключиться на ветку.
  • git merge <branch> — влить изменения из указанной ветки в текущую.
  • git branch -d <branch> — удалить локальную ветку (после слияния).