如何批量删除冗余远程git分支?

时间:2013-03-17 15:23:23

标签: git

我有一个来自旧远程仓库的相对较大的远程分支集合:

$ git branch -r
  guy/feat1
  guy/feat2
  guy/feat3
  guy/feat4
  guy/feat5
  guy/feat6
  guy/feat7
  guy/feat8
  origin/HEAD
  origin/master

是否有一个命令会删除所有guy分支?

回购不再有guy作为远程回购。

3 个答案:

答案 0 :(得分:4)

git branch -r | grep guy/ | xargs git branch -d

(假设$符号实际上不是您输出的一部分......)

答案 1 :(得分:4)

您也可以尝试(来自git remote):

git remote --prune guy

使用:

prune
  

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

中本地可用。      

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

另请参阅“Difference between git remote prune and git branch -d -r

如果家伙不再是一个valide远程回购,那么:

git gc --prune=now

将清理那些分支(以及一些未引用的提交,因此请谨慎使用)
详情请见“How do you Remove an Invalid Remote Branch Reference from Git?”:如果可能,通常更安全:git branch -rd guy/badbranch,但如果这不起作用,那么git gc --prune=now也可以成为解决方案。< / p>

答案 2 :(得分:0)

要删除您可以使用的远程分支     git push <remote-repo> :branch-to-delete 在分支到删除之前记下冒号。另请参阅Delete multiple remote branches in git ...这显示了如何构建一行代码以一次删除多个分支。