如何删除以“local-feat-18.3-APPLE-1854”开头的git本地分支?

tktrz96b  于 2023-01-11  发布在  Git
关注(0)|答案(2)|浏览(113)

如果我查一下本地的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

资源链接:Delete all local git branches

wrrgggsh

wrrgggsh1#

虽然我没有亲自测试过,但你的评论表明它是成功的。
实质上,您的第二个建议从git branch输出中删除了developmaster
我的想法是颠倒过滤器,这样grep就只包含具有您所寻找的名称的分支。

git branch | grep "local-feat-18.3-APPLE-1854" | xargs git branch -D

我简单解释如下:

  • git branch输出所有本地现有分支的列表。
  • | grep "mystring"通过管道将输出导入grep搜索,并且只选择包含“mystring”的行。
  • | xargs git branch -D将输出作为一组参数进行管道传输,并删除分支。
busg9geu

busg9geu2#

你可以通过这个git命令进行测试。

git branch -D `git branch | grep -E '^3\.2\..*'`

资源链接:https://stackoverflow.com/a/3670479

相关问题