寻找一条命令删除Git仓库中除master以外的所有分支,并将其推送到远程。
这是在发布版本之前清理Git存储库,因为以前的历史记录会分支所有其他内容,完全是开发更改,并且没有关系。
答案 0 :(得分:2)
这将删除所有分支(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;
这将执行相同的操作,只剩下develop
和master
分支:
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;
答案 1 :(得分:1)
最后,下面的命令对我来说就像是魅力一样,您可以对其进行调整以满足进一步的要求。
git branch -r | grep origin/ | grep -v 'master$' | grep -v HEAD| cut -d/ -f2 | while read line; do git push origin :$line; done;
答案 2 :(得分:0)
可以使用以下命令,它将删除除master和当前分支以外的所有分支
git branch | grep -v "master\|$(git branch --show-current)" | xargs git branch -D