批量删除本地分支
git branch -a | grep -v -E 'master|develop' | xargs git branch -D
批量删除远程分支
git branch -r| grep -v -E 'master|develop' | sed 's/origin\///g' | xargs -I {} git push origin :{}
如果有些分支无法删除,是因为远程分支的缓存问题,可以使用git remote prune
批量删除本地tag
git tag | xargs -I {} git tag -d {}
批量删除远程tag
git tag | xargs -I {} git push origin :refs/tags/{}
用到命令说明
grep -v -E 排除master 和 develop
-v 排除
-E 使用正则表达式
xargs 将前面的值作为参数传入 git branch -D 后面
-I {} 使用占位符 来构造 后面的命令
来源 https://www.cnblogs.com/yoable/p/8124343.html