1.第一種方法
git gui
菜單欄上 repository-->visual all branch history
或者直接使用命令gitk --all
2.在git bash中,使用命令查看
git log --graph --all
【命令行查看不太適合相差太大的分支,分支的共同父節點和分支的當前節點隔開太多】
3.tortoisegit中,查看日志的功能中
左下角有一個all branches的checkbox,勾選之后就可以顯示了
查看日志的時候,不要讓commit按照時間順序來排列
http://lists-archives.com/git/655429-visualizing-git-s-git-repo.html
- 首先看一下沒有按照時間順序排列的gitk -all
查看分支的合並歷史記錄的時候,會非常清楚。[將紅色的分支稱為A分支,將綠色的分支稱為B分支]
從上圖可以很明顯的看出A分支,有3個新的commit;二B分支有4個新的commit;然后將2個分支合並,生成了一個新的commit
- 再來看一下按照時間順序排列的gitk -all -d
在上圖中用紅色的圈,標明了需要對比的部分
可以看到右側的4個提交記錄是不連貫的,這個不符合合並的時候邏輯思維
我們在合並2個分支的時候,並不關系,2個分支上的commit的時間,我們關心的是在A分支上做了多少提交,在B分支上做了多少提交,
上圖打亂了B分支的4個提交首先看到的是B分支的3個提交記錄,然后是A分支的3個提交記錄,再看到B分支的1個提交記錄。這種圖示不符合我們要了解合並流程的思維
假如A和B分支的提交,在時間上是相互交錯的話,這個圖的可理解性會變得更差
最后看下tortoisegit的效果圖
tortoisegit的默認顯示,是正確的顯示方式 --topo-order
但是tortoisegit的顯示效果沒有gitk的效果好
temp fix的這次提交記錄,從這里直接向右做的分支圖,效果很差,多個分支之間進行了交叉
和gitk的效果對比,很明顯可以看出,gitk是直接從后方繞過去的。確保了分支的合並,整個歷史記錄不會有交叉的地方出現