命令git branch -a
列出了一堆既不在代码库中,也不是本地分支的分支。如何删除这些分支?
* develop
master
remotes/origin/cloner
例如,在该仓库中曾经存在 remotes/origin/cloner
分支,但是它已经被删除了,我希望在输入 git branch -a
命令时不要显示它。命令git branch -a
列出了一堆既不在代码库中,也不是本地分支的分支。如何删除这些分支?
* develop
master
remotes/origin/cloner
例如,在该仓库中曾经存在 remotes/origin/cloner
分支,但是它已经被删除了,我希望在输入 git branch -a
命令时不要显示它。如果您在远程仓库中删除了分支(例如此处的 origin/cloner
),但是留下了对应的远程跟踪分支,您可以使用以下命令删除所有此类远程跟踪分支:
git remote prune origin
git remote 的文档 对此进行了解释:
删除 <name> 下所有过期的远程跟踪分支。这些过期的分支已经从引用 <name> 的远程仓库中删除,但仍然在“remotes/<name>”中本地可用。
使用
--dry-run
选项可以报告将要被修剪的分支名称,但不会实际修剪它们。
git branch -d -r origin/cloner
git branch -d -r origin/cloner
命令,因为 origin/cloner
是一个远程跟踪分支。 - Mark Longairmain
和develop
分支并从git存储库中删除所有本地分支,则可能会有所帮助。main
和develop
之外的所有本地分支:
git branch -a | egrep -v "(^\*|main|develop)" | xargs git branch -d
你也可以这样做
git push origin :cloner
删除不需要的远程分支
有时远程存储库引用已经从本地克隆中删除,但仍然出现在“git branch -a”命令的输出中。 无论如何,您始终可以通过删除相应的文件来抑制任何引用:
$ rm -f .git/refs/remotes/cloner
$ rm -rf .git/refs/remotes/deprecated_remote
.git
дёӢеҲ йҷӨж–Ү件иҖҢдёҚдҪҝз”Ёз“·еҷЁе‘Ҫд»ӨиҝӣиЎҢж“ҚдҪңжҳҜдёҖдёӘдёҚеҘҪзҡ„жғіжі•гҖӮ - Mark Longair