如果我查一下本地的git分支。
$ git branch
local-feat-18.3-APPLE-1854-20180227
local-feat-18.3-APPLE-1854-20180227#1
local-feat-18.3-APPLE-1854-20180228
local-feat-18.3-APPLE-1854-20180228#1
local-feat-18.3-APPLE-1899-20180320
local-feat-18.3-APPLE-1899-20180320#1
local-feat-18.3-APPLE-1899-20180320#2
local-feat-18.3-APPLE-1899-20180330
local-feat-18.3-APPLE-1899-20180330#1
local-feat-18.3-APPLE-1921-20180402
local-feat-18.3-APPLE-1921-20180402#2
local-feat-18.3-APPLE-1921-20180402#3
删除后,它将如下所示:
$ git branch
local-feat-18.3-APPLE-1899-20180320
local-feat-18.3-APPLE-1899-20180320#1
local-feat-18.3-APPLE-1899-20180320#2
local-feat-18.3-APPLE-1899-20180330
local-feat-18.3-APPLE-1899-20180330#1
local-feat-18.3-APPLE-1921-20180402
local-feat-18.3-APPLE-1921-20180402#2
local-feat-18.3-APPLE-1921-20180402#3
请你帮我解决这个问题。谢谢你的支持。
我没有考虑,是否合并。我已经通过堆栈溢出。我得到了一些建议,如下面,但不满意。
1.要删除除当前已 checkout 的分支之外的所有分支:
for b in `git branch --merged | grep -v \*`; do git branch -D $b; done
1.删除所有分支但保留其他分支(如“develop”和“master”)的简单方法如下:
git branch | grep -v "develop" | grep -v "master" | xargs git branch -D
2条答案
按热度按时间wrrgggsh1#
虽然我没有亲自测试过,但你的评论表明它是成功的。
实质上,您的第二个建议从
git branch
输出中删除了develop
和master
。我的想法是颠倒过滤器,这样
grep
就只包含具有您所寻找的名称的分支。我简单解释如下:
git branch
输出所有本地现有分支的列表。| grep "mystring"
通过管道将输出导入grep搜索,并且只选择包含“mystring”的行。| xargs git branch -D
将输出作为一组参数进行管道传输,并删除分支。busg9geu2#
你可以通过这个git命令进行测试。
资源链接:https://stackoverflow.com/a/3670479