多人開發使用了較多分支, 有些還沒覺得及時清理, 結果積累下來不少, 有些比較容易看出來手動刪除, 有些就不大清楚了... 往 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