Git 分支管理之清除
简介
对于分布式的 git,远程分支多了,不利于接管的开发人员立即投入开发。而在公司自动化不是很完善的时候,手动处理分支变得家常。
基本命令
删除远程分支
git push origin --delete hotfix # 删除远程hotfix分支
本地对应的分支还是会存在的。
删除本地分支
git branch -d hotfix # 删除本地hotfix分支
日常操作
查看远程已删除的分支
git remote prune origin --dry-run
# 输出
Pruning origin
URL: http://gi.xxx.com/xxx.git
* [would prune] origin/demo
清理已删除的远程分支的引用
git remote prune origin
# 输出
Pruning origin
URL: http://gi.xxx.com/xxx.git
* [pruned] origin/demo
并不会清除本地已存在的该分支
查看已无法追踪的本地分支
git branch -vv
# 输出
... ...
demo 92e944d [origin/demo: gone] Merge branch 'xxx/1.0.0' into 'master'
... ...
已失效的远程追踪分支会有
gone
标识
删除无法追踪的本地分支
这里我们会配合本地分支删除命令,做多个无效的本地分支删除。
会分为三步:
git branch --merged
:列出已经合并到当前分支
的分支列表,确保删除安全;egrep -v "(^\*|master|dev)"
:排除不想删除的关键分支;xargs git branch -d
:执行多个删除操作;
git branch --merged | egrep -v "(^\*|master|rollback)" | xargs git branch -d
# 输出
Deleted branch demo (was 92e944d).