Git 如何批量删除分支
批量删除本地分支
假设本地有若干分支都以feature/开头,如果要批量删除这些分支,可以使用如下命令:
1 | git branch | grep 'feature/' | xargs git branch -d |
解释一下这个命令:
git branch:列出所有本地分支。grep 'feature/':过滤出以feature/开头的分支。xargs git branch -d:将过滤后的分支名传递给git branch -d命令进行删除。
普通的删除分支命令格式如下:
1 | git branch -d <branch-name> # 删除本地分支 |
也支持一次性删除多个,但是需要手动输入分支名,例如:
1 | git branch -d feature/branch1 feature/branch2 feature/branch3 |
遗憾的是不支持通配符批量删除。所以xargs命令就派上用场了。
xargs 命令会将前面的输出作为后面命令的参数传递进去,从而实现批量删除。(注意:Windows系统没有grep和xargs命令,可以使用Git Bash或者安装GNU工具集来获得这些命令。)
批量删除远程分支
假设远程有若干分支都以feature/开头,如果要批量删除这些分支,可以使用如下命令:
1 | git branch -r | grep 'origin/feature/' | sed 's/origin\///' | xargs -I {} git push origin --delete {} |
解释一下这个命令:
git branch -r:列出所有远程分支。grep 'origin/feature/':过滤出以origin/feature/开头的分支。sed 's/origin\///':去掉分支名前的origin/前缀。xargs -I {} git push origin --delete {}:将过滤后的分支名传递给git push origin --delete命令进行删除。
普通的删除远程分支命令格式如下:
1 | git push origin --delete <branch-name> # 删除远程分支 |