业务场景
在使用Git进行版本管理的过程中, 通常拥有以下规范:
- 主分支: main
- 开发分支: dev
- 功能分支: feature-*
- 修复BUG分支: fix-*
- ...
例如笔者需要完成登录和修改密码功能, 那在笔者的电脑中, 就会存在这样两个分支:
- feature-login
- feature-changePassword
功能少还好说, 但如果随着版本迭代和需求更新, 本地已完成的分支会越来越多, 甚至可能会出现分支名称重复的问题
如何规范的去处理这种问题呢?
方案
版本管理
在处理本地分支的问题上, 首先要明确何时该对其进行删除:
- 已推送到远程仓库
- 已提交PR
- 已被管理员合并到开发分支(dev)
在确定执行完上述操作后, 本地分支即可进行删除
删除分支
删除分支使用git branch -D 分支名称即可
例如要删除登录功能分支, 在命令行输入: git branch -D feature-login
批量删除分支
手动一个个输入命令去删除分支, 在分支较多的情况下显然变成了体力劳动
笔者认为这不是一个程序员的风格, 程序员应该是个'懒人'
和linux相同, 我们可以使用管道符号与xargs完成这项工作:
git branch | grep 'feature-*\|fix-*' | xargs git branch -D
其实这是三个命令:
git branch: 列出全部分支grep 'feature-*\|fix-*': 筛选以'feature-'或'fix-'开头的分支xargs git branch -D: 强行删除分支
其中最核心的命令是|和xargs
|的作用是把前一个命令的输出作为后一个命令的输入
xargs是把输入作为后一个命令的参数
怎么样, 如果你正确理解了这两个命令, 是不是批量删除分支的逻辑就异常清晰了呢?
总结
在学习过程中, 希望小伙伴们可以抓准知识点或技巧的核心内容, 花一分钟拿来用和花三分钟弄清楚为什么并不冲突
我们的人生也不差这两分钟, 戒骄戒躁