</> Praktum

Главная / Git / Ветки

Git · 20 минут

Ветки Git: работаем над задачей отдельно

Ветка позволяет менять проект, не затрагивая стабильную версию. Закончив задачу, изменения объединяют с основной веткой.

Зачем нужны ветки

Создавай отдельную ветку для новой страницы, исправления или эксперимента. Так история остаётся понятной, а неготовая работа не попадает в main.

Создание и переключение

git switch -c feature/menu
git status
git branch

switch -c создаёт ветку и сразу переключает на неё. git branch показывает список; звёздочка отмечает текущую.

Слияние

git switch main
git merge feature/menu

Перед слиянием сохрани изменения коммитом. Git добавит коммиты рабочей ветки в main. Если одни строки менялись по-разному, возникнет конфликт, который нужно решить вручную.

Удаление готовой ветки

git branch -d feature/menu

Флаг -d безопасно откажется удалять неслитую ветку. Не используй принудительное удаление, пока не убедишься, что изменения больше не нужны.

Понятные названия

Имена вроде feature/search, fix/mobile-menu или content/html-forms объясняют назначение ветки лучше, чем new2.

Ошибки

  • Начинать задачу, не проверив текущую ветку.
  • Смешивать несколько несвязанных задач в одной ветке.
  • Сливать изменения с незакоммиченными файлами.
  • Удалять ветку до проверки результата.

Ветка — подвижная бирка на коммите

Когда ты делаешь коммит, бирка текущей ветки переезжает на новый снимок. Другая ветка продолжает указывать на старый. Поэтому эксперимент в form-check не портит main, пока ты сам не сольёшь изменения.

Переключение ветки меняет файлы в папке. Несохранённые правки, которые конфликтуют с другой веткой, Git не даст унести молча. Либо закоммить их, либо временно убери через git stash.

git switch -c form-check
# правки и коммит
git switch main
git merge form-check
git branch -d form-check

Имена и время жизни

Название ветки — это задача: fix-label, lesson-tables. Не копи ветки test, test2 и new. После слияния короткую ветку удаляют, чтобы список не врал, будто работа ещё идёт.

Долгая ветка, которую не обновляют от основной неделями, потом сливается больнее. Для учебного проекта подтягивай main в свою ветку чаще, чем копишь расхождения.

Что смотреть, если запутался

  • git status в первой строке пишет текущую ветку.
  • git log --oneline --decorate --graph показывает, где бирки.
  • git switch - возвращает на предыдущую ветку.
  • Не удаляй ветку с -D, пока не убедился, что её коммиты уже влиты.
Запомни: Новая идея — новая ветка от свежего main, а не продолжение случайной старой ветки.

Практика

Создай ветку feature/footer, измени подвал, сделай коммит, вернись в main и выполни слияние.

Практикум по теме