Git学习--07--批量删除分支

需求

因为我们项目的GIT工作流是一个任务或一个Bug单独拉一个分支,完成之后再MergeRuquest到开发主分支。时间一长,就导致本地有大量的GIT分支。虽然并没有太大的影响,但GIT会经常提示垃圾回收(git gc)。

解决方案

1. 删除分支命令

删除一条分支:

git branch -D branchName

删除当前分支外的所有分支:

git branch | xargs git branch -d

删除分支名包含指定字符的分支:

git branch | grep 'dev' | xargs git branch -d 
// 该例将会删除分支名包含’dev’字符的分支

2. 命令解释

|
管道命令,用于将一串命令串联起来。前面命令的输出可以作为后面命令的输入。

git branch
用于列出本地所有分支。

grep
搜索过滤命令。使用正则表达式搜索文本,并把匹配的行打印出来。

xargs
参数传递命令。用于将标准输入作为命令的参数传给下一个命令。

3. 管道命令与xargs命令的区别

管道是实现’'将前面的标准输出作为后面的标准输入"

xargs是实现“将标准输入作为命令的参数"

实例

删除本地分支中包含Hotfix的分支

执行命令

git branch | grep 'Hotfix' | xargs git branch -d

执行结果

Git学习--07--批量删除分支

注意事项

执行grep命令必须在完全支持git命令的命令行工具才能执行,比如在powershell执行,会报错:

Git学习--07--批量删除分支