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是直接从后方绕过去的。确保了分支的合并,整个历史记录不会有交叉的地方出现
git图示所有分支的历史的更多相关文章
- Git Pro - (2)分支
Git 保存的不是文件差异或者变化量,而只是一系列文件快照. 在 Git中提交时,会保存一个提交(commit)对象,它包含一个指向暂存内容快照的指针,作者和相关附属信息,以及一定数量(也可能没有)指 ...
- git 创建branch分支
开发者user1 负责用getopt 进行命令解析的功能,因为这个功能用到getopt 函数,于是将这个分支命名为user1/getopt.(1)确保是在开发者user1的工作区中cd /home/j ...
- git 创建branch分支【转】
转自:http://www.cnblogs.com/jackluo/p/3499731.html 开发者user1 负责用getopt 进行命令解析的功能,因为这个功能用到getopt 函数,于是将这 ...
- Git教程之分支管理之二
分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息.如果要强制禁用Fast forward模式,Git就会在merge时生成一个 ...
- 【git】之分支管理
git是鼓励开发者使用分支,尤其是在大型开发项目中,分支是非常重要的!这里简单介绍一下分支的操作! 1.创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. 当前检出分支的前 ...
- git 查看一个分支是否被合并过
1.查看该分支的提交历史 git log 分支名 2.git log master |grep comitid 如果包含,就证明已经合并过 3.git branch -d 分支名,如果报错,就是没合并 ...
- 版本控制git之二-分支
有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量, ...
- git入门四(分支创建合并)
熟悉git分支的原理是掌握了git的精髓,因为git和我们常用的源码管理系统有很大的区别和优点在分支上可以体现出来,一般我们常用的源码管理系统分支都是需要创建新目录,有全新的源码copy,一般都需要创 ...
- 【Git】整合分支那些事儿
对于scm这个岗位来说,基线升级应该是这个岗位需要的必备技能了,现在来说说我司进行高通代码基线升级时选择的方式方法,供大家参考,也供自己学习积累. git这个工具大家都并不陌生,但是对于不经常提交代码 ...
随机推荐
- CSS3兼容IE的大杀器
经过长久以来的不懈努力,我终于成功的将selectivizr与PIE这两个解决css3的利器进行了深度的整合,大大降低了使用难度 <!--[if lte IE 9]><script ...
- 20160406javaweb JDBC 实例工具类
一.建立静态的数据库配置文件: config.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/datab ...
- Android中log4j的运用
网上一查关于android上面运用Log4j的运用,各种说需要添加多样的包的,照着log4j的官网教程看了下,给了个简单的输出到console上面的代码,似乎没什么用.看网上关于Log4j更多是在ja ...
- 推荐几本C#程序员阅读的书籍
http://www.cnblogs.com/tongming/p/3879752.html
- Mysql下在某一列后即表的某一位置添加新列的sql语句
Mysql简介 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤 ...
- c#保存textbox中的字符串到txt文件中
/********************** 保存接收按钮 *****************************/ private void SavetxData_Click(object s ...
- 国庆第六日(2014年10月6日11:51:15),node-webkit,理财产品
(1)node-webkit:一篇很好的入门文章.入门.系列. 在window下的打包和运行.大漠的一篇讲解文章 . (2)lighttable: 官网. (3)现在的理财产品,雨后春笋般冒出:宝点网 ...
- bzoj1090:[SCOI2003]字符串折叠
思路:区间dp,令f[l][r]表示l到r的答案,于是f[l][r]=min(f[l][mid],f[mid+1][r]),如果能折叠f[l][r]=min(f[l][r],f[l][l+len-1] ...
- Gradle实战教程之依赖管理
这是从我个人网站中复制过来的,原文地址:http://coolshell.info/blog/2015/05/gradle-dependency-management.html,转载请注明出处. 简要 ...
- I/O端口与I/O内存
端口的概念:设备通过系统总线上的接口与CPU相连,接口电路中含有多种寄存器,CPU向设备读写数据实际上是向接口上的寄存器读写数据,这些寄存器称为I/O端口.一个接口通常包含控制端口,数据端口,状态端口 ...