Что такое…

Что такое ветка в Git — и почему это не копия твоих файлов

Иллюстрация: от общей линии кода отходит тонкая закладка-ответвление

Новички представляют ветку в Git так: «это копия всей папки с кодом, где я могу ломать, не трогая оригинал». Интуиция почти верная по ощущениям — но неверная по устройству. И как раз из-за этого ветки кажутся тяжёлыми и страшными. На самом деле ветка — это крошечная закладка, а не копия файлов.

Что такое ветка простыми словами

Ветка — это отдельная линия работы. Ты берёшь код в текущем состоянии, «отпочковываешься» и делаешь свои изменения, не задевая основную линию (обычно она называется main). Наигрался — сливаешь ветку обратно или выкидываешь.

Аналогия: пишешь книгу и хочешь попробовать другую концовку. Ты не переписываешь весь черновик — делаешь пометку «отсюда пробую по-новому». Не понравилось — вернулся к пометке, будто ничего и не было. Ветка — эта самая пометка.

Почему ветка — это указатель, а не копия

Вот неожиданное. Ветка в Git — это буквально один файл с одной строчкой: именем и хешем коммита, на который она смотрит. Сорок байт. Никакого дублирования кода — Git хранит историю один раз, а ветка просто показывает пальцем: «я вот на этом коммите».

Поэтому создать ветку — мгновенно, хоть сто штук. Ты не копируешь гигабайты, ты ставишь ещё одну закладку. Когда делаешь коммит, находясь на ветке, закладка сдвигается вперёд, на новый коммит. Вот и весь секрет — понимание этого разом убирает страх «а вдруг я что-то сломаю созданием ветки».

Зачем тебе ветки — даже соло

Кажется, что ветки нужны только командам, где все пишут одновременно. Но и в одиночку они — твоя страховочная сетка:

  • main всегда рабочий. Экспериментируешь в ветке — основная версия остаётся целой. Сломал что-то — просто выкинул ветку.
  • Одна ветка — одна задача. «Добавляю тёмную тему» в одной ветке, «чиню баг входа» в другой. Не мешаются.
  • Основа для pull request. Чтобы предложить изменения к проверке, их сначала кладут в ветку — pull request как раз просит влить одну ветку в другую.

Многие ИИ-агенты по умолчанию работают именно так: заводят ветку под каждую задачу, чтобы твой рабочий код всегда оставался цел.

Как это выглядит на практике

Три команды покрывают 90% жизни с ветками:

  • git switch -c dark-mode — создать ветку dark-mode и переключиться на неё.
  • git switch main — вернуться на основную ветку.
  • git merge dark-mode — влить готовую работу из dark-mode в текущую ветку.

Всё это и ещё пяток команд — в шпаргалке команды Git для новичка. А если запутался или коммит ушёл не туда — есть отдельный разбор, как отменить коммит.

Вопрос: чем ветка отличается от коммита?

Коммит — это зафиксированный снимок кода в момент времени, звено в цепочке истории. Ветка — подвижная закладка, которая показывает на последний коммит своей линии. Коммит остаётся на месте навсегда; ветка едет вперёд с каждым новым коммитом.

Вопрос: сколько веток можно держать?

Сколько угодно — они почти ничего не весят. На практике удобно держать одну долгоживущую (main) и заводить короткие ветки под конкретные задачи, сливая и удаляя их по мере готовности. Гора заброшенных веток не сломает проект, но захламляет — так что доделал, слил, удалил.

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →