当前分支合并到另一分支时,如果没有分歧解决,就会直接移动文件指针。这个过程叫做fastforward。

举例来说,开发一直在master分支进行,但忽然有一个新的想法,于是新建了一个develop的分支,并在其上进行一系列提交,完成时,回到 master分支,此时,master分支在创建develop分支之后并未产生任何新的commit。此时的合并就叫fast forward。

可以看出这是一次式的合并,且合并完之后的视图为扁平状,看不出develop分支开发的任何信息。

使用–no-ff进行合并

—no-ff (no fast foward),使得每一次的合并都创建一个新的commit记录。即使这个commit只是fast-foward,用来避免丢失信息。

可以看出,使用no-ff后,会多生成一个commit 记录,并强制保留develop分支的开发记录(而fast-forward的话则是直接合并,看不出之前Branch的任何记录)。这对于以后代码进行分析特别有用。

而且使用—no-ff合并还有一个实际意义。举个例子说明:假如你的领导出差了,但是项目现在还在进行着,于是他让你继续接着写,但是领导回来之后发现你写的这些功能根本不是他想要的或者之后才发现有一个很大的bug导致要放弃这个功能,这样的话用这个就很方便了,也很直观,直接找到领导出差之前的提交历史恢复过去就OK了。很直观,很直接。

下面两张图分别是用fast-forward和—no-ff合并的截图,显然第二张很直观。

分布式版本控制系统Git-----8.fst-forward与no fast foward的更多相关文章

  1. [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git

    [.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...

  2. [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

    [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...

  3. [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境

    [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...

  4. 分布式版本控制系统 Git 的安装与使用

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/CJL29 ...

  5. 分布式版本控制系统Git的安装与使用

    分布式版本控制系统Git的安装与使用 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 我的远端仓库地址是:htt ...

  6. 【软件工程】分布式版本控制系统Git的安装与使用

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/Richa ...

  7. 分布式版本控制系统Git的安装与使用(作业2)

    (本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103) 分布式版本控制系统Git的安装与使用 一.安装Git b ...

  8. 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境(服务器端及客户端)(转)

    近期想改公司内部的源码管控从TFS为git,发现yubinfeng大侠有关git的超详细大作,现将其转载并记录下,以防忘记,其原博客中有更加详细的git及.net开发相关内容.原文地址:http:// ...

  9. 分布式版本控制系统—git命令

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...

  10. 分布式版本控制系统 Git 教程

    简介 Git 是什么? Git 是一个开源的分布式版本控制系统. 什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 什么是分布式版本控制系统? 介绍分布 ...

随机推荐

  1. XAF-列表视图数据访问模式

    本主题介绍有关列表视图如何提供数据访问的几种方式.请注意,选择正确的方式对于实现XAF应用程序的最佳性能至关重要.    数据访问模式概述   在模型编辑器中,通过 视图-> <ListV ...

  2. 软件各种版本的含义!例如RC,M,GA等等

    RC版本   RC:(Release Candidate)   Candidate是候选人的意思,用在软件上就是候选版本.Release是发行.发布的意思.Release.Candidate.就是发行 ...

  3. mysql数据恢复问题

    现象 mysql> drop database zabbix; Query OK, 104 rows affected (0.30 sec)mysql> exitBye[root@mysq ...

  4. IIS配置 Web部署 svg/woff/woff2字体 404错误

    一,woff/woff2字体 404错误,这个可以在浏览器按F12的Console页面可以发现问题,如下图: 解决方法: 一,打开服务器IIS管理器,找到MIME类型 二,添加MIME类型 添加三条: ...

  5. 【01背包】HDU 2546 饭卡

    Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) ...

  6. 距离VR时代的真正到来还有多久?

    2016年被称为是VR元年,各大VR设备商的宣传攻势铺天盖地,众VR产品看的人眼花缭乱.随着平民化进程不断推进以及渗透率的提升,VR成为近两年来最引人关注的焦点,在众多领域的共同作用下,VR时代是否即 ...

  7. 关于onCreate(Bundle savedInstanceState, PersistableBundle persistentState)

    API 21为Activity增加了一个新的属性,只要将其设置成persistAcrossReboots,activity就有了持久化的能力,另外需要配合一个新的bundle才行,那就是Persist ...

  8. junit 注意事项,切记

    Junit 依赖于 hamcrest jar包,所以在用@Test注解的时候 junit-xxx.jar  hamcrest-core-xx.jar   hamcrest-library-xx.jar ...

  9. Java入门第三季排序练习

    package imooc_collection_map_demo; import java.util.ArrayList;import java.util.Collections;import ja ...

  10. Kafka集群搭建

    1.zookeeper搭建 Kafka集群依赖zookeeper,需要提前搭建好zookeeper zookeeper快速搭建推荐地址:http://nileader.blog.51cto.com/1 ...