多人开发使用了较多分支, 有些还没觉得及时清理, 结果积累下来不少, 有些比较容易看出来手动删掉, 有些就不大清楚了... 往 commit history 里看会比较麻烦, 有没有比较方便查看的办法?
另外合并的话, 有时候合的是 git merge branch-a, 有时候合并会是 git merge origin/branch-a, 查看是否合并是否可以不受这个区别的影响?
git merge branch-a
git merge origin/branch-a
欢迎选择我的课程,让我们一起见证您的进步~~
试试: - git branch --merged - git branch --no-merged
git branch --merged
git branch --no-merged
也可以试试 git log | grep branch_name
git log | grep branch_name
推荐一个工具 tig 效果如下:
大写的 M 代表的就是 merge 操作,这样看应该很清晰吧,每个分支的历史都可以看得清清楚楚,当然号称 git 浏览器的 tig 的作用不仅如此,还有更多强大的地方,非常值得一用。
M
merge
git
tig
分支如果是显式merge,直接git branch -d xxx就行,如果没有显示merge,这个命令是不执行的。
但是有些分支可能被隐式merge,也就是它的代码被合并到了主干(merge --squash/rebase),但是没有执行过显式的merge,这时候怎么办呢。比如这个分支叫feature,主干是master
git checkout feature git rebase master(以master为基 rebase) 解决下冲突 这时候feature分支就是以master HEAD为基的分支了,之后是merge还是丢弃随你便。。 当然rebase后发现feature和master 指向同一个HEAD,那么这个分支肯定是合并过的,直接-d删掉即可
试试:
-
git branch --merged
-
git branch --no-merged
也可以试试
git log | grep branch_name
推荐一个工具 tig
效果如下:
大写的
M
代表的就是merge
操作,这样看应该很清晰吧,每个分支的历史都可以看得清清楚楚,当然号称git
浏览器的tig
的作用不仅如此,还有更多强大的地方,非常值得一用。分支如果是显式merge,直接git branch -d xxx就行,如果没有显示merge,这个命令是不执行的。
但是有些分支可能被隐式merge,也就是它的代码被合并到了主干(merge --squash/rebase),但是没有执行过显式的merge,这时候怎么办呢。比如这个分支叫feature,主干是master