Удалить ветки, перечисленные в разделе git branch -a
Команда git branch -a
содержит список ветвей, которые НЕ находятся в репозитории, и НЕ локальные ветки. Как их можно удалить?
* develop
master
remotes/origin/cloner
Например, remotes/origin/cloner
используется для существования в репо, но с тех пор он был удален, и я бы хотел, чтобы он не появлялся при вводе git branch -a
.
Ответы
Ответ 1
Если в этом случае есть ветки удаленного отслеживания (например, origin/cloner
), которые оставлены после того, как соответствующая ветвь была удалена в удаленном репозитории, вы можете удалить все такие ветки удаленного отслеживания с помощью:
git remote prune origin
Документация для git remote
объясняет это как:
Удаляет все дочерние ветки удаленного отслеживания под <name> . Эти устаревшие ветки уже удалены из удаленного репозитория, на который ссылаются < имя > , но все еще локально доступны в "remotes/< имя > ".
С опцией --dry-run
сообщите, какие ветки будут обрезаны, но на самом деле их не обрезать.
Ответ 2
Чтобы удалить ветку, которая больше не нужна, вы можете использовать следующую команду:
git branch -d -r origin/cloner
Ответ 3
Вы также выполняете
git push origin :cloner
Удаление нежелательных удаленных ветвей
Ответ 4
Также может случиться, что ссылка удаленного репозитория была удалена из локального клона, но все же появляется на выходе команды git branch -a '.
В любом случае вы всегда можете подавить любую ссылку, просто удалив соответствующие файлы:
$ rm -f .git/refs/remotes/cloner
$ rm -rf .git/refs/remotes/deprecated_remote