Ветвление
Тема дорожной карты · Изучи Git
Ветки в Git — это всего лишь лёгкие перемещаемые указатели на коммиты, и создание ветки практически бесплатно (в отличие от старых систем управления версиями, таких как SVN, где это полное копирование). Ветка по умолчанию обычно называется main (или старое master). git branch показывает список веток, git branch <name> создаёт новую, git switch <name> (или git checkout) перемещает HEAD. Ветки нужны, чтобы изолировать фичи, эксперименты и багфиксы от стабильного кода, а затем сливать или ребейзить их обратно. Ментальная модель: ветка — это метка на графе коммитов. Ветки позволяют разработчикам работать параллельно над разными частями проекта, избегая конфликтов и обеспечивая более гибкую структуру управления версиями.
Как это работает
Ветвление: git branch <name> (создать), git switch <name> / git checkout <name> (переключить — switch современнее), git switch -c <name> (создать + переключить), git branch -d <name> (удалить merged), git branch -D <name> (force-удалить), git branch -v (список с последним коммитом). HEAD указывает на текущую ветку; текущая ветка — на свой tip-коммит. Ветки практически бесплатны — создавайте свободно. Важно понимать, что ветки в Git не требуют дополнительного места на диске, так как они просто указывают на существующие коммиты, что делает их идеальными для быстрого создания и удаления.
Когда применять
Ветка на каждую отдельную работу — один PR = одна ветка. Конвенция имён (feat/, fix/, docs/). Удаляйте merged-ветки; git fetch --prune очищает tracked-but-deleted remote-ветки. git switch - — прыжок назад к предыдущей ветке (zsh-style cd shortcut). Ветки полезны для изоляции работы над конкретными задачами, особенно при работе в команде. Они позволяют разработчикам работать параллельно над разными частями проекта, избегая конфликтов и обеспечивая более гибкую структуру управления версиями.
Типичные ошибки
Ловушки Ветвление: ветвление от неверной базы (ответвились от feature-A когда хотели от main — interactive rebase или cherry-pick); долгоживущие ветки, расходящиеся с main (merge становится болезненным); git checkout для и переключения ветки и discard файла (путает — switch и restore современный split). Очень важно избегать этих ошибок, чтобы избежать проблем с конфликтами и сложностями при слиянии веток.