Тур по Git
Ветвление и слияние / Урок 2.1

Что такое ветки?

Ветка -- это независимая линия разработки. Она позволяет работать над функциональностью, исправлением ошибки или экспериментом, не затрагивая основную кодовую базу.

Общая картина

Думайте о ветках как о параллельных временных линиях:

main:     A --- B --- C
                 \
feature:          D --- E
  • main продолжает развиваться с коммитом C
  • feature ответвилась от B и имеет свои собственные коммиты D и E
  • Они не мешают друг другу

Зачем использовать ветки?

Изоляция -- Работайте над функциональностью, не ломая main. Если эксперимент не удался, просто удалите ветку.

Совместная работа -- Несколько разработчиков работают над разными ветками одновременно, а затем объединяют результаты, когда всё готово.

Код-ревью -- Создайте ветку, отправьте её и откройте пулл-реквест, чтобы другие могли проверить код перед слиянием.

Как ветки работают внутри

Ветка -- это просто указатель на коммит. Вот и всё. Создание ветки не копирует никакие файлы -- оно просто создаёт новый указатель.

main ──→ commit C
feature ──→ commit E
HEAD ──→ feature  (вы сейчас на ветке "feature")
  • HEAD -- это специальный указатель, который отслеживает, на какой ветке вы сейчас находитесь
  • Когда вы делаете коммит, указатель текущей ветки перемещается вперёд
  • Когда вы переключаете ветки, HEAD перемещается на другую ветку

Ветка по умолчанию

Когда вы выполняете git init, Git создаёт ветку по умолчанию с именем main (или master в старых версиях). Это просто соглашение -- технически в ней нет ничего особенного.

Типичный рабочий процесс с ветками

  1. Создайте ветку: git branch feature
  2. Переключитесь на неё: git checkout feature
  3. Делайте коммиты в ветке
  4. Вернитесь обратно: git checkout main
  5. Объедините работу: git merge feature
  6. Удалите ветку: git branch -d feature

В следующих уроках вы попрактикуете каждый из этих шагов.