这里已经提出了一个非常类似的问题:Remove local branches no longer on remote
但是给出的答案是指合并为主人的分支。我想删除我的机器上没有遥控器参考的所有分支。
示例:我在功能分支feat-improvements
上执行了一些工作,它被推送到远程,审阅,合并到主控,并由远程审阅者删除。但我忘了使用标准git branch -D feat-improvements
在本地删除分支,随后我创建了一大堆其他我想要摆脱的其他修复/功能分支。现在我想在一击中摆脱现在。
答案 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
的参数将是除正则表达式中的所有分支之外的所有分支。