删除不在远程的git分支

时间:2016-01-18 14:42:47

标签: git merge

这里已经提出了一个非常类似的问题:Remove local branches no longer on remote

但是给出的答案是指合并为主人的分支。我想删除我的机器上没有遥控器参考的所有分支。

示例:我在功能分支feat-improvements上执行了一些工作,它被推送到远程,审阅,合并到主控,并由远程审阅者删除。但我忘了使用标准git branch -D feat-improvements在本地删除分支,随后我创建了一大堆其他我想要摆脱的其他修复/功能分支。现在我想在一击中摆脱现在。

1 个答案:

答案 0 :(得分:-1)

尝试这样的事情:

git branch -D `git branch | grep -E '(?!branch-that-will-not-be-deleted|another-branch-to-avoid).+'`

它使用一个正则表达式忽略与名称branch-that-will-not-be-deleted e another-branch-to-avoid匹配的git branch(获取所有分支)输出的所有内容。

因此,传递给git branch -D的参数将是除正则表达式中的所有分支之外的所有分支。