一句话删除github中所有已经merge了的分支

问题描述

很多小伙伴在 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-)

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top