如何批量删除冗余远程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
作为远程回购。
git branch -r | grep guy/ | xargs git branch -d
(假设$
符号实际上并不是你输出的一部分......)
你也可以尝试(从git remote
):
git remote --prune guy
附:
prune
删除<name>
下的所有陈旧的远程追踪分支。
这些陈旧的分支已从<name>
引用的远程存储库中删除,但仍在本地“remotes /”中提供。
使用--dry-run
选项,报告将修剪哪些分支,但不实际修剪它们。
另请参见“ git remote prune
和git branch -d -r
之间的区别”
如果家伙不再是一个真正的远程回购,那么:
git gc --prune=now
将清理这些分支(以及一些未引用的提交,因此请谨慎使用)
请参阅“如何从Git中删除无效的远程分支引用?”:如果可能,通常更安全: git branch -rd guy/badbranch
如果可能,但如果这不起作用,那么git gc --prune=now
也可以成为解决方案。
要删除一个远程分支,你可以使用git push <remote-repo> :branch-to-delete
注意分支到删除之前的冒号。 另请参阅在git中删除多个远程分支...这显示了如何构建一个单行程以一次删除多个分支。