1.第一种方法

git gui

菜单栏上 repository-->visual all branch history

或者直接使用命令gitk --all

2.在git bash中,使用命令查看

git log --graph --all

【命令行查看不太适合相差太大的分支,分支的共同父节点和分支的当前节点隔开太多】

3.tortoisegit中,查看日志的功能中

左下角有一个all branches的checkbox,勾选之后就可以显示了

查看日志的时候,不要让commit按照时间顺序来排列

http://stackoverflow.com/questions/8187767/git-is-there-a-command-line-option-for-sort-by-date-for-gitk

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图示所有分支的历史的更多相关文章

  1. Git Pro - (2)分支

    Git 保存的不是文件差异或者变化量,而只是一系列文件快照. 在 Git中提交时,会保存一个提交(commit)对象,它包含一个指向暂存内容快照的指针,作者和相关附属信息,以及一定数量(也可能没有)指 ...

  2. git 创建branch分支

    开发者user1 负责用getopt 进行命令解析的功能,因为这个功能用到getopt 函数,于是将这个分支命名为user1/getopt.(1)确保是在开发者user1的工作区中cd /home/j ...

  3. git 创建branch分支【转】

    转自:http://www.cnblogs.com/jackluo/p/3499731.html 开发者user1 负责用getopt 进行命令解析的功能,因为这个功能用到getopt 函数,于是将这 ...

  4. Git教程之分支管理之二

    分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息.如果要强制禁用Fast forward模式,Git就会在merge时生成一个 ...

  5. 【git】之分支管理

    git是鼓励开发者使用分支,尤其是在大型开发项目中,分支是非常重要的!这里简单介绍一下分支的操作! 1.创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. 当前检出分支的前 ...

  6. git 查看一个分支是否被合并过

    1.查看该分支的提交历史 git log 分支名 2.git log master |grep comitid 如果包含,就证明已经合并过 3.git branch -d 分支名,如果报错,就是没合并 ...

  7. 版本控制git之二-分支

    有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量, ...

  8. git入门四(分支创建合并)

    熟悉git分支的原理是掌握了git的精髓,因为git和我们常用的源码管理系统有很大的区别和优点在分支上可以体现出来,一般我们常用的源码管理系统分支都是需要创建新目录,有全新的源码copy,一般都需要创 ...

  9. 【Git】整合分支那些事儿

    对于scm这个岗位来说,基线升级应该是这个岗位需要的必备技能了,现在来说说我司进行高通代码基线升级时选择的方式方法,供大家参考,也供自己学习积累. git这个工具大家都并不陌生,但是对于不经常提交代码 ...

随机推荐

  1. VS2015 Cordova Ionic移动开发(一)

    一.Windows环境配置 1.如果已经安装VS2015,打开[工具]-[选项]找到Cordova选项: 运行依赖关系查看器,用来检测开发环境是否完整. 如果检测显示: 那么就是环境配置完成了.可以直 ...

  2. oracle linux下oracle 10g启动EM、isqlplus及相关命令语法

    转载:http://hancang2000.blog.sohu.com/139239421.html ORACLE_HOME/bin/emctl start dbconsole $ORACLE_HOM ...

  3. BCEC手动验证业务方法

    在每次割接或业务调整后手动执行并做好业务验证工作 一.研发区利用ansible手动执行巡检程序: 步骤1:登陆 10.254.3.4/opt/ansible 步骤2:手动执行 sh compute_c ...

  4. Codevs 1648 最大和

    1648 最大和 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description N个数围成一圈,要求从中选择若干个连续的数(注意每个 ...

  5. std::map的操作:插入、修改、删除和遍历

    using namespace std; std::map<int,int> m_map; 1.添加 for(int i=0;i<10;i++) { m_map.insert(mak ...

  6. leetcode342——Power of Four(C++)

    Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example:Giv ...

  7. EIGamal密码体制

    EIGamal密码体制:由EIGamal提出,是一种基于离散对数问题的双钥密码体制,既可用于加密,又可以用于签名. 密钥对生成步骤: 1.取大素数p和g<p(g最好是p的素根) 2.选一整数x& ...

  8. ASP.NET全局文件与防盗链

    添加Web→全局应用程序类,注 文件名不要改 Global.asax 全局文件是对Web应用声明周期的一个事件响应的地方,将Web应用启动时初始化的一些代码写到 Application_Start中, ...

  9. mysql 主从一致性检查

    我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题.几年后,当我再次面对同样的问题时,Maatkit已经不复存在, ...

  10. Python3 列表

    list是一种有序的集合,可以随时添加和删除其中的元素. >>> classmates = ['Michael', 'Bob', 'Tracy'] >>> clas ...