git branch: список, создание и удаление веток
Обновлено 31 июля 2026 г.
git branch перечисляет ветки репозитория, создаёт новую и удаляет ту, что больше не нужна.
Ветка - это указатель на один коммит, а не копия проекта. Отсюда и набор операций: посмотреть, куда указывают имена, поставить новое имя на текущий коммит, снять имя, которое отслужило.
Без аргументов команда печатает список, а звёздочка отмечает ветку, на которой ты стоишь:
$ git branch
feature-x
* main
$ git branch -v # то же плюс последний коммит каждой ветки
feature-x 1ef2a5c первая версия отчёта
* main 1ef2a5c первая версия отчётаС именем в аргументе команда создаёт ветку от текущего коммита и оставляет тебя там же, где ты был. Переход - это отдельная команда git switch:
$ git branch feature-x # создать, остаться на main
$ git switch feature-x # перейти
Switched to branch 'feature-x'Создание не занимает времени даже в огромном репозитории, потому что копировать нечего. Ветка лежит в файле .git/refs/heads/<имя>, и внутри одна строка: хеш коммита, сорок символов.
Удаление и переименование
Маленькая -d убирает только ту ветку, чья работа уже влита куда-то ещё. Если работа нигде не сохранена, git откажется:
$ git branch -d feature-x
error: the branch 'feature-x' is not fully merged
hint: If you are sure you want to delete it, run 'git branch -D feature-x'
$ git branch -D feature-x # удалить в любом случае
Deleted branch feature-x (was f57b8c6).Заглавная -D вопросов не задаёт. Но даже она не стирает коммиты с диска: пропадает только указатель, а сами коммиты ещё какое-то время находятся по хешу через git reflog.
Переименование делает -m. С двумя именами оно трогает названную ветку, с одним - ту, на которой ты стоишь:
$ git branch -m feature-x feature-y # переименовать feature-x в feature-y
$ git branch -m draft # переименовать текущую ветку в draftЧастые ошибки
git branch feature-x не переводит на новую ветку. Классический сценарий: человек создал ветку, сделал коммит и обнаружил его в main. Чтобы создать и сразу перейти, есть git switch -c feature-x.
Ветку, на которой стоишь, удалить нельзя: error: cannot delete branch 'main' used by worktree at '/home/me/report'. Сначала перейди на другую, потом удаляй.
Где это в учебнике
Глава 5. Ветки: параллельные версии проекта вводит ветку как указатель и показывает, зачем держать несколько версий проекта одновременно.
Потренироваться руками - в Песочнице: настоящий терминал с git и проверка шагов.