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 foward相关推荐

  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 forward

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

  4. git merge 的两种模式的区别 --no-ff与fast forward

    git merge 将名字为branchName的分支合并到当前分支 有两种模式 git merge <branchName>:fast forward模式,快速合并,看不出做过合并. 不 ...

  5. FFmpeg是什么?(Fast Forward Moving Picture Experts Group)(AVFormat、AVCodec、AVFilter、AVDevice、AVUtil)

    文章目录 前言 一.FFmpeg的定义 二.FFmpeg的基本组成模块 (1)FFmpeg的封装模块AVFormat (2)FFmpeg的编解码板块AVCodec (3)FFmpeg的滤镜模块AVFi ...

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

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

  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. 为了把mysql的索引底层原理讲清楚,我把计算机翻了个底朝天
  2. jquery submit()不能提交表单的解决方法
  3. MTK MtkSettings Sim Dialog Patch
  4. 怎样将两个html页面合并,如何把WORD的两个页面合并在一起?
  5. 高仿国美在线底部代码实现
  6. 数组 -自动遍历数组-冒泡排序
  7. PetShop之ASP.NET缓存 --one
  8. 在python中、关于全局变量和局部变量、以下_关于全局变量和局部变量-Python
  9. 1051. Pop Sequence (25)
  10. [嵌入式方案][cx32l003] 一个健壮的BootLoader系统
  11. 路由器 android 打印机,用路由器将普通打印机变成网络打印机
  12. Linux vmwaver下安装cenos联网时出现 network is unreachable问题
  13. 天坑专业成功跨考计算机,研0渣渣前来报到
  14. 网络笔记:路由选路原则
  15. FTP bin和ascii的区别
  16. 界面仅允许扫码枪录入禁止手工键盘输入
  17. Remoting学习
  18. python xlsxwriter库生成图表的应用
  19. 樱花FRP内网穿透登录群晖相册ds photo
  20. 908. Smallest Range I

热门文章

  1. 水仙花c语言代码3位数,3位数水仙花数C语言的问题
  2. 网络服务之----DNS域名解析服务篇
  3. Django request的相关用法
  4. 基于PHP购物商城网站设计与实现
  5. 我不是鱼,你也不是水
  6. 【LED子系统深度剖析】七、触发器实现
  7. 今天给大家介绍一下虚拟人工智能“Jill Waston”
  8. MySQL启动与关闭的3种方式
  9. SQL语句建表基础教程
  10. c语言html文件按字符顺序读入,C语言完整笔记