在使用语句之前请确认你理解了语句的意思,否则语句执行之后如果错误删除掉你的分支而本人不用负未告知的责任,因为我已经废话半天在这说这件事了。
希望大家操作命令之前,能用自己的demo工程操作一下,以免出现误删操作。
强烈建议使用之前先把重要的分支保存到本地!
1 假设现在远程仓库存在以下的分支:
oirigin/master
oirigin/master_1
oirigin/1_master
oirigin/develop
oirigin/develop_x
oirigin/x_develop
oirigin/feature
2 批量删除远程分支:
-v 的意思是保留分支
git branch -r -v | grep -E 'master|develop' | sed 's/origin\///g' | xargs git push origin --delete
语句执行结束剩下的分支应该是什么?
oirigin/master
oirigin/master_1
oirigin/1_master
oirigin/develop
oirigin/develop_x
oirigin/x_develop
对,你没有看错,凡是包含master,develop的分支都会被保留下来,只是把feature分支删除了。
那我只想保留master,develop分支,其他的带下划线的分支都不想要了怎么办?
注意这里去掉了-v
git branch -r | grep -E 'master|develop' | sed 's/origin\///g' | xargs git push origin --delete
剩下的分支是什么呢?
oirigin/master
oirigin/develop
okay 最终只剩下了我们想要的两个分支。
3 批量删除本地分支:
语句和删除远程分支相似,只是将对远程的操作放到了本地执行。
git branch -a | grep -v -E 'master|develop' | xargs git branch -D