Git 很是强大,在体验过rebase的华丽之后,再次发现之前在TFS上遇到的问题一下都有解了。但也印证了Git深入并非易事。这篇就谈下一个容易迷糊的概念:Fast forward。

Fast-Forward

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

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

示例:

1. 新建一个work tree,在master中做几次commit
2. 新建develop的branch,然后再做多次commits

此时的分支流图如下(gitx):

正常合并

(master)$ git merge develop 
Updating 5999848..7355122
Fast-forward
c.txt |    1 +
d.txt |    1 +
2 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 c.txt
create mode 100644 d.txt

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

使用–no-ff进行合并

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

(master)$ git merge –no-ff develop
Merge made by recursive.
c.txt | 2 +-
d.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

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

好的实践

–no-ff,其作用是:要求git merge即使在fast forward条件下也要产生一个新的merge commit。此处,要求采用–no-ff的方式进行分支合并,其目的在于,希望保持原有“develop branches”整个提交链的完整性。Git – Fast Forward 和 no fast foward

转自:https://www.cnblogs.com/xingzc/p/5975433.html

Git- Fast Forward和no fast forward相关推荐

  1. Git的Fast Forward和no fast foward合并模式对比

    详细版本见个人博客:Git的Fast Forward和no fast foward合并模式对比 通常,合并分支时,如果没有分歧解决,就会直接移动文件指针,这就是Fast forward模式. 举例来说 ...

  2. Git 的 Fast Forward 和 no fast foward

    原文地址 目录 Fast forward 概述 强制禁用 Fast forward 模式的具体方法 Fast Forward 和 no fast foward 合并模式对比 分支策略 小结 Fast ...

  3. Git – Fast Forward 和 no fast foward

    Git 很是强大,在体验过rebase的华丽之后,再次发现之前在TFS上遇到的问题一下都有解了.但也印证了Git深入并非易事.这篇就谈下一个容易迷糊的概念:Fast forward. Fast-For ...

  4. Forward vs Deferred vs Forward+ Rendering with DirectX 11

    原文:http://www.3dgep.com/forward-plus/ Introduction Forward rendering works by rasterizing each geome ...

  5. fast无线网卡linux驱动,fast无线网卡驱动,详细教您fast无线网卡驱动

    当我们使用笔记本电脑工作的时候,如果发现没有无线网络,有些用户会选择使用无线网卡,有的用户会使用fast无线网卡来上网,但是有用户不知道怎么都无法上网,这个时候该怎么办呢?这多半是因为没有安装fast ...

  6. python中forward函数的引用_调用没有.forward()的forward函数

    在看一些关于姿势估计的pytorch代码时,AlphaPose我注意到一些不熟悉的语法: 基本上,我们定义了一个Darknet类,它继承了nn.Module属性,比如:class Darknet(nn ...

  7. 路由器fast服务器没响应,FAST路由器复位常见问题解决方法

    许多用户在给FAST路由器复位后,发现怎么也登陆不了FAST路由器的管理页面,下面学习啦小编就给大家详解一下其中的原因,希望对您有所帮助! FAST路由器复位常见问题解决方法 一.检查电脑的本地连接是 ...

  8. fast无线路由器设置服务器,Fast迅捷无线路由器端口映射设置方法 | 192路由网

    本文将介绍在Fast(迅捷)无线路由器上设置端口映射的方法,端口映射在Fast无线路由器中叫做虚拟服务器,它定义了广域网服务端口和局域网网络服务器之间的映射关系,所有对该广域网服务端口的访问将会被重定 ...

  9. 【fast ICA】基于fast ICA算法的去除伪迹matlab仿真

    1.软件版本 matlab2021a 2.本算法理论知识 FAST方法,步骤如下所示: 3.核心代码 clc; clear; close all; warning off; addpath 'func ...

最新文章

  1. solr开发,提交索引数据的几种方式
  2. 25--最后一个单词的长度
  3. 技术干货 | 应用性能提升 70%,探究 mPaaS 全链路压测的实现原理和实施路径
  4. 【Java】避免用户篡改查询结果的GUI显示的策略
  5. VC下设置Excel单元格的边框
  6. Workflow之Activity
  7. 返回固定页面的web服务器
  8. C-从源文件到可执行文件的详细编译链接过程
  9. 文件和base64编码的相互转换
  10. 虚拟服务器网络无法连接,VMware虚拟机XP系统网络无法连接受限制或无连接解决方法...
  11. JavaCV本地视频流通过帧图片添加文本进行字幕合成
  12. SSM项目大作业——网上订餐系统
  13. 【多模态】Multi-modal chemical information reconstruction from images and texts for exploring the
  14. 大数据【企业级360°全方位用户画像】项目介绍
  15. 使用宝塔搭建环境,以及把自己本地的Web项目通过宝塔发布到远程云服务器上
  16. FM33G0系列之低功耗
  17. SCAU程序设计在线实训平台_考试_计算智能_ 最小的特殊数字
  18. [SPC]生产统计过程控制三
  19. 传输层安全性(Transport Layer Security,TLS)-译
  20. 全国创新杯计算机说课比赛,全国创新杯计算机类说课课件:制作Word表格.pptx

热门文章

  1. java读取word表格中的数据_JAVA获取word表格中数据的方案
  2. vscode的插件使用
  3. 解决更新包与已安装应用的签名不一致的问题
  4. 软件架构基本技法——打包
  5. Win8.1/Win8/Win7桌面图标无法拖动怎么办
  6. Unity加载火炬之光的场景
  7. sstream和strstream的区别
  8. 多边形区域填充算法--扫描线种子填充算法
  9. 【嵌入式】任意波特率的合理计算——高波特率、低误差
  10. ListView的用法以及即时刷新