本地分支的清理
项目做着做着,分支越积越多,feature/login、hotfix/pay-bug、temp/chart-display……打开终端一看,一长串分支名堆在那儿,根本记不清哪个还在用,哪个早该扔了。这时候删分支不是技术问题,是种心理安慰。
删本地分支很简单,用 git branch -d 就行:
git branch -d feature/login如果分支还没合并,Git 会拦你一下,防止误删。这时候如果确定不要了,可以强行删:
git branch -D feature/login-d 是安全删除,-D 是强制清除,差一个字母,结果天差地别。
远程分支的移除
本地删了,远程可能还留着。尤其是一些临时协作分支,开发完合并了,但没人动手清理,仓库里就一直挂着。时间一长,新来的同事看到一堆陈年分支,不知道从哪下手。
删远程分支命令也很短:
git push origin --delete hotfix/pay-bug也可以简写成:
git push origin :hotfix/pay-bug这种写法看着奇怪,像是把分支推了个空值,其实就是靠“推送空引用”的方式让远程分支消失。老手常用,但新手容易看懵。
什么时候该删分支?
合并进主干的特性分支,通常就没必要留了。比如做完用户注册功能,合并到 develop 或 main 后,对应的 feature/user-signup 分支就可以下岗。不删也行,但留着只会增加干扰。
但有些情况要留心:比如正在发布的版本打了 tag,但对应的 release/2.0 分支先别急着清。万一线上出问题,还得回溯代码、补丁修复,有分支在,查起来方便。
误删了怎么办?
刚删完本地分支,发现还有点改动没合进去?别慌,只要提交记录还在,就能捞回来。Git 的 reflog 记着你每一步操作:
git reflog找到那个分支最后一次的 commit hash,重新建个分支指向它就行:
git branch feature/login abc1234远程分支删错了也类似,只要知道最后一个提交,再推一次就行:
git push origin feature/login前提是本地还有这个分支的记录,或者别人仓库里还存着。
养成清理习惯
就像打扫工位,定期整理分支能让协作更清爽。可以在 PR 合并后顺手删掉源分支,很多平台(比如 GitHub)都提供“合并后自动删除”选项,勾一下省事又干净。
团队里也可以定个小规则:谁创建的分支,谁负责收尾清理。既减少垃圾,也提醒大家对自己写的代码负责到底。