Menu
Coddy logo textTech

Git: Удаление локальной ветки

Последнее обновление

После того как работа в ветке слита, вы удаляете её командой git branch -d <branch>. Git отказывается, если в ветке есть коммиты, которые нигде не слиты, - это проверка безопасности. Чтобы удалить её всё равно, используйте заглавную -D. Удаление локальной ветки никогда не затрагивает копию на удалённом репозитории; это отдельная команда.

Попробуйте это в терминальном playground - настоящая оболочка в вашем браузере, ничего не нужно устанавливать.

git branch -d удаляет только указатель ветки - слитые коммиты остаются в истории main.

Синтаксис

CommandWhat it does
git branch -d featureУдаляет feature (только если она слита)
git branch -D featureПринудительно удаляет feature, даже если не слита
git branch -d branch1 branch2Удаляет несколько веток сразу

Частые случаи

GoalCommand
Удалить слитую веткуgit branch -d old-feature
Принудительно удалить неслитую веткуgit branch -D scratch
Удалить ветку, на которой вы находитесьgit switch main затем git branch -d feature
Посмотреть, какие ветки слитыgit branch --merged

Разбор примера

Завершите фичу, слейте её и подчистите локальную ветку.

StepCommandResult
1git switch mainУйдите с ветки, которую хотите удалить
2git merge featureПеренесите коммиты фичи в main
3git branch -d featureУдалите теперь уже слитую ветку

Частые вопросы об удалении локальной ветки в Git

В чём разница между git branch -d и -D?
-d - это безопасное удаление: Git удаляет ветку, только если её коммиты уже слиты в другую ветку, поэтому вы не можете случайно потерять работу. -D - это принудительное удаление (сокращение от --delete --force): оно удаляет ветку в любом случае, даже если в ней есть неслитые коммиты. Используйте -d по умолчанию и прибегайте к -D только тогда, когда уверены, что хотите выбросить коммиты ветки.
Как удалить ветку, на которой я сейчас нахожусь?
Вы не можете удалить ветку, которая у вас извлечена (checked out). Сначала переключитесь на другую ветку командой git switch main (или git checkout main), а затем выполните git branch -d feature. Если попытаться удалить текущую ветку, Git выдаст ошибку "Cannot delete branch ... checked out".
Удаляет ли удаление локальной ветки её на GitHub?
Нет. git branch -d удаляет ветку только из вашего локального репозитория. Ветка на удалённом репозитории (GitHub, GitLab и т. д.) остаётся, пока вы не удалите её отдельно командой git push origin --delete feature.
Можно ли восстановить удалённую ветку?
Обычно да, если это было недавно. Выполните git reflog, чтобы найти коммит, на который указывала ветка, затем воссоздайте её командой git branch feature <commit-hash>. Коммиты не подвергаются сборке мусора сразу, поэтому ветку, удалённую по ошибке, обычно можно восстановить.
Могу ли я попрактиковаться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнять эти команды в настоящей оболочке прямо в браузере - ничего не нужно устанавливать. Когда захотите структуры, бесплатный интерактивный курс по Git от Coddy проведёт вас от первого коммита через ветвление и слияние шаг за шагом.
Coddy programming languages illustration

Изучайте Git с Coddy

НАЧАТЬ