Git · 20 минут
Ветки Git: работаем над задачей отдельно
Ветка позволяет менять проект, не затрагивая стабильную версию. Закончив задачу, изменения объединяют с основной веткой.
Зачем нужны ветки
Создавай отдельную ветку для новой страницы, исправления или эксперимента. Так история остаётся понятной, а неготовая работа не попадает в main.
Создание и переключение
git switch -c feature/menu
git status
git branchswitch -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 и выполни слияние.
Практикум по теме
- Конфликт слияния без паники — Конфликт значит, что две ветки поправили одно место. Git не выбирает за тебя.