问题描述
很多小伙伴在 git 管理的项目中,合并代码,创建 PR 成功 merge 之后不会顺手把开发的分支删掉。随着时间的日积月累,分支变得越来越多。
这个时候终于有人站出来说要清理一下陈旧的分支了,但是几百上千个分支,我们不可能手动删除吧?
解决方案
首先我们要用命令列出所有已经被合并merge过的分支,最好是跳过一些自定义的分支啦。
比如我们选择了 branchA 作为基准,所有 merge 过到 branchA的分支,统统列出来。然后我们又想跳过 master branchA branchB 这些分支。
git branch -r --merged branchA | grep origin | egrep -v '>|master|branchB|branchC' | cut -d/ -f2-
最后就是删掉啦。
一并push了吧:
git push origin --delete $(git branch -r --merged branchA | grep origin | egrep -v '>|master|branchB|branchC' | cut -d/ -f2-)