git图示所有分支的历史
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是直接从后方绕过去的。确保了分支的合并,整个历史记录不会有交叉的地方出现