首页 > 解决方案 > 如何删除除 master 之外的所有 Git 远程分支?

问题描述

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

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

标签: githubgit

解决方案


这将删除所有分支(除了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;

这将做同样的事情,只留下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;

这是鱼壳的脚本:

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;

推荐阅读