如何删除除master之外的所有Git远程分支?

wil*_*eel 18 git github

寻找一个命令来删除 Git 存储库上除 master 之外的所有分支并将它们推送到远程。

这是为了在发布之前清理 Git 存储库,因为以前的历史分支其他所有内容都是完全开发更改并且无关紧要。

sta*_*xim 35

这将删除所有分支(除了master),即使分支中有斜杠“/”:

git branch -r | grep 'origin' | grep -v 'master$' | grep -v HEAD | cut -d/ -f2- | while read line; do git push origin :heads/$line; done;
Run Code Online (Sandbox Code Playgroud)

这将做同样的事情,单独留下developmaster分支:

git branch -r | grep 'origin' | grep -v 'master$' | grep -v 'develop$' | grep -v HEAD | cut -d/ -f2- | while read line; do git push origin :heads/$line; done;
Run Code Online (Sandbox Code Playgroud)

这是鱼壳的脚本:

git branch -r | grep 'origin' | grep -v 'master$' | grep -v 'develop$' | grep -v HEAD | cut -d/ -f2- | while read line; git push origin :heads/$line; end;
Run Code Online (Sandbox Code Playgroud)


wil*_*eel 2

最后,下面的命令对我来说就像魅力一样,您可以根据进一步的要求进行调整。

git branch -r | grep origin/ | grep -v 'master$' | grep -v HEAD| cut -d/ -f2 | while read line; do git push origin :$line; done;
Run Code Online (Sandbox Code Playgroud)

  • 你为什么不直接批准@staxim的答案,你的答案是一样的,只需在他的下面写一条评论,即“origin/”而不是“origin” (6认同)
  • @RichieHH我可能遗漏了一些东西,但看起来willsteel的答案是在他问问题的那天发布的,而staxim的答案是在几个月后发布的。如果斯塔西姆编辑了 willsteel 的答案而不是发布他自己的答案,那就更好了 (6认同)
  • 这是之前答案的副本。请点赞而不是重复。 (2认同)