删除git branch -a列出的分支

时间:2011-11-01 11:38:31

标签: git

命令git branch -a列出了一堆不在存储库上的分支,而不是本地分支。怎么能删除这些?

* develop
  master
  remotes/origin/cloner

例如,remotes/origin/cloner曾经存在于repo中,但它已被删除,我希望在键入git branch -a时不显示。

5 个答案:

答案 0 :(得分:27)

如果您在远程存储库中删除了相应的分支后遗留了远程跟踪分支(例如本例中为origin/cloner),则可以删除所有此类远程跟踪分支: / p>

git remote prune origin

documentation for git remote将此解释为:

  

删除< name>下的所有陈旧远程跟踪分支。这些陈旧的分支已从< name>引用的远程存储库中删除,但仍在“remotes /< name>”中本地可用。

     

使用--dry-run选项,报告将修剪哪些分支,但实际上不修剪它们。

答案 1 :(得分:3)

要删除不再需要的分支,可以使用以下命令:

git branch -d -r origin/cloner

答案 2 :(得分:0)

你也做

git push origin :cloner 

删除不需要的远程分支

答案 3 :(得分:0)

如果您想保留 maindevelop 分支并从 git 存储库中删除所有本地分支,那么这可能会有所帮助。

删除所有本地分支除了ma​​indevelop

git branch -a | egrep -v "(^\*|main|develop)" | xargs git branch -d

答案 4 :(得分:-5)

也可能发生远程存储库引用已从本地克隆中删除,但仍出现在'git branch -a'命令的输出中。 在任何情况下,只需删除相应的文件即可始终禁止任何引用:

$ rm -f .git/refs/remotes/cloner
$ rm -rf .git/refs/remotes/deprecated_remote