首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除git中的多个远程分支

删除git中的多个远程分支
EN

Stack Overflow用户
提问于 2012-05-12 00:22:38
回答 14查看 59.3K关注 0票数 139

我有一个团队成员,他无意中将150多个本地分支机构推到了我们的中央回收站。谢天谢地,它们都有相同的前缀。使用这个前缀,有没有一个git命令或很酷的小shell脚本可以一次删除所有这些内容?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2012-05-12 00:36:24

使用以下命令删除远程服务器上所有带有PREFIX前缀的分支。

代码语言:javascript
复制
git branch -r | awk -F/ '/\/PREFIX/{print $2}' | xargs -I {} git push origin :{}

您可能需要先进行一次演练,看看是否需要删除分支:

代码语言:javascript
复制
git branch -r | awk -F/ '/\/PREFIX/{print $2}'
票数 169
EN

Stack Overflow用户

发布于 2015-06-03 19:51:44

grep也是如此:git branch -r | grep -Eo 'PREFIX/.*' | xargs -i git push origin :{}

branch -r显示origin/prefix/branchname。因此,这将需要prefix/branchname

票数 15
EN

Stack Overflow用户

发布于 2014-01-30 23:00:58

Neevek的解决方案是优雅的,但它可以更好:建议的解决方案称为每个分支一次'git push‘,这意味着要删除每个分支的额外网络往返。既然您使用的是awk,为什么不使用它作为':‘的前缀,这样xargs就可以只调用'git push’一次,并一次性删除所有分支:

演练以列出要删除的分支:

代码语言:javascript
复制
git branch -r | awk -F/ '/\/PREFIX/{print ":" $2}'

实际推送删除的最终解决方案:

代码语言:javascript
复制
git branch -r | awk -F/ '/\/PREFIX/{print ":" $2}' | xargs git push origin
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10555136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档