git merge之--no-ff 的作用

article/2025/7/10 1:34:52

禁止使用快进模式 no-fast—forward

在这里插入图片描述

$ git merge --no-ff -m "merge with no-ff" dev

在许多介绍 Git 工作流的文章里,都会推荐在合并分支时,加上 --no-ff 参数:

$ git checkout develop
$ git merge --no-ff feature

–no-ff 在这的作用是禁止快进式合并。
Git 合并两个分支时,如果顺着一个分支走下去可以到达另一个分支的话,那么 Git 在合并两者时,只会简单地把指针右移,叫做“快进”(fast-forward),比如下图:

注意:::这种是master没有前进的情况,所以会这样,如果master也前进了,则可以不用这个,但是为了保险起见,嘚使用–no-ff

         A---B---C feature/
D---E---F master

要把 feature 合并到 master 中,执行以下命令

$ git checkout master
$ git merge feature

结果就会变成

          A---B---C feature/         master
D---E---F 

因为 feature 就在 master 的下游,所以直接移动了 master 的指针,master 和 feature 都指向了 C。而如果执行了 git merge --no-ff feature 的话,是下面的结果:

          A---B---C feature/         \
D---E---F-----------G master

由于 --no-ff 禁止了快进,所以会生成一个新的提交,master 指向 G。

从合并后的代码来看,结果其实是一样的,区别就在于 --no-ff 会让 Git 生成一个新的提交对象。为什么要这样?通常我们把 master 作为主分支,上面存放的都是比较稳定的代码,提交频率也很低,而 feature 是用来开发特性的,上面会存在许多零碎的提交,快进式合并会把 feature 的提交历史混入到 master 中,搅乱 master 的提交历史。所以如果你根本不在意提交历史,也不爱管 master 干不干净,那么 --no-ff 其实没什么用。不过,如果某一次 master 出现了问题,你需要回退到上个版本的时候,比如上例,你就会发现退一个版本到了 B,而不是想要的 F,因为 feature 的历史合并进了 master 里。


http://chatgpt.dhexx.cn/article/O9U8xcm8.shtml

相关文章

如何卸载FF推荐?

很多小伙伴们都发现,近一段时间,自己的电脑中时常会弹出一个叫“FF新推荐”的广告弹窗,扰民不说显示的内容也很猥亵。按理说,电脑上开启拦截软件后,一般的广告弹窗是不会出现的,那么这个能跳过安全工具拦截…

git merge 合并时 --no-ff 的作用——主要影响版本回退(好文章!)

在许多介绍 Git 工作流的文章里,都会推荐在合并分支时,加上 --no-ff 参数: $ git checkout develop$ git merge --no-ff feature --no-ff 在这的作用是禁止快进式合并。我们平常什么都不加的时候,则使用默认的 --ff &#xff0c…

win10如何禁用\删除讨厌的ff新鲜事(ff新推荐)(flash弹窗广告)

雾草,Adobe Flash植入的这种广告太变态了! 定位: 打开运行窗口(winr),输入“services.msc”,之后回车确定 然后我们在弹出来的窗口中找到“flash helper service”选项,之后右键…

#FF00FF(255,0,255)应该是紫色(Purple),把#FF00FF称为“品红”(“洋红/Magenta”)是一种误称

作者:❄️固态二氧化碳❄️ (主页) 链接:#FF00FF(255,0,255)应该是紫色(Purple),把#FF00FF称为"品红"(“洋红/Magenta”)是一种误称 - 固态二氧化碳的博客 - CSDN博客 来源:CSDN博客 发表时间:2019年06月02日 18:31:06 …

音乐推荐系统

✨写在前面:强烈推荐给大家一个优秀的人工智能学习网站,内容包括人工智能基础、机器学习、深度学习神经网络等,详细介绍各部分概念及实战教程,通俗易懂,非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站。…

推荐系统算法--ItemCF--MF(ALS)--FF

1.ItemCF: 协同过滤是什么? 协同过滤 (Collaborative filtering),指的是,通过收集群体用户的偏好信息,自动化预测(过滤)个体用户可能感兴趣的内容。协同(collaborating&#xff09…

Git merge时使用--no-ff参数

/1、Git:Git-merge的–ff和–no-ff。 前言 Git merge最容易糊涂的地方就是这个--ff参数和--no-ff 参数,通过本文,把这个整理清楚。 其实官网讲的非常清楚,不过可能因为是英文的,所以大家阅读起来会有一些障碍。&…

如何清除弹窗FF新推荐

前言:一个星期日的下午,我打算过肥宅的生活,吃的东西已经就位,当我打开电脑后跳出了这个玩意,瞬间好心情全无。身为程序员,感觉受到了侮辱。 一 Adobe Flash简介 查看任务管理器查看详细信息如下&#xf…

ff新推荐弹窗怎么彻底删除---解决方案

根源:几乎所有的电脑中都会安装Flash Player,而FF新推荐弹窗就是Flash Player的,那么Win7、Win10系统FF新推荐怎么卸载? 方法一:直接删除FF新推荐 1、如果FF新推荐弹出之后,先不要关闭掉,使用键…

彻底关闭弹出广告“FF新推荐”

很多小伙伴们都发现,近一段时间,自己的电脑中时常会弹出一个叫“FF新推荐”的广告弹窗,扰民不说显示的内容也很猥亵。一检查发现居然是Flash中国官方干的,安装了flash播放器后就弹出广告。就像下面这样的: 1. FF新推荐…

Java课程设计

学生考勤管理系统 文章目录 学生考勤管理系统一、 前言1、设计背景2、系统设计的目的及意义3、 调查用户需求 二、 系统简介三、 功能介绍1、服务器启动2、登陆3、学生端4、 老师端 四、 系统调试实现1、老师端2、学生端 五、 总结 一、 前言 1、设计背景 随着社会的发展&…

软件测试学习路线

软件测试学习路线图 随着互联网IT产业的蓬勃发展,软件测试的行业也日趋火热,更多人的转向了软件测试行业,当然更多的问题也亟待解决,比如软件测试自学教程视频内容?软件测试视频教程?软件测试培训入门教程?软件测试培训学习思路?鉴此千锋教育不惜教育成本,全面推出软…

学习Altium Designer软件总结

广西●河池学院 广西高校重点实验室培训基地 系统控制与信息处理重点实验室 本篇博客来自河池学院: 智控无人机小组 写作时间:2020.08.22 学习Altium Designer软件总结 因学习了AD,在此总结一下步骤和我遇到的问题以及的解决方法。 (1…

软件开发专业主要有哪些课程?

软件开发专业主要有哪些课程? 1、WEB分为前端开发和后端开发,前端开发需要学CSS3、JavaScript、Html5,后端开发开发需要学PHP、Python、Java。 2、移动端开发需要学OC或者Swift。 3、嵌入式开发需要学C语言、计算机基础知识等。 软件分为系统…

专业工具软件课程学习心得

专业工具软件课程学习心得 部分资源链接: 1 http://download.csdn.net/detail/zhangrelay/9799032 2 http://download.csdn.net/detail/zhangrelay/9799055 3 http://pan.baidu.com/s/1hs1IRMO 密码: kqiz …… 课程学习需要结合其他理论课程&am…

云原生学习的最佳路径

前言 运维这个课程是一个入行门槛低,精通比较难的岗位。 之所以比较难精通,是因为学的比较杂。更重要的是很多种知识并没有一个很好的连贯性。 比如你学zabbix和学docker,就是在学两个东西。 在或者你学nginx和学mysql,这也是两…

课程设计 英语学习助手

课程设计–英语学习助手 1.具体实现的功能模块 试设计一个英语学习助手,下列各项为对该系统数据库的基本要求。 (1)实现英语单词的录入、修改、删除等基本操作; (2)实现常用英语单词例句的录入、修改、删除…

电子科技大学软件工程大一到大三课程

大三下 实习6个月 大三上 大二下 大二上 大一下 大一上

计算机软件要学哪些课程,计算机软件专业主要学习哪些课程?

当前很多中专、大专类职业院校都开设了计算机软件专业。很多同学在选择该专业时,想知道这个专业有哪些课程,这些课程学习难度如何等问题。下面成都职业学校的老师就给大家解答。 首先看主要课程:中专类学习开设的主要课程有:动画设…

NB-IoT 的低功耗分析,我们是怎么做的

人与人之间的通讯规模已近天花板,物与物(IoT)的则刚刚进入增长快车道。随着可穿戴、车联网、智能手表等新兴市场的开启,工业4.0、智慧城市、智慧农业等理念照进现实,万物互联的时代正加速到来。预计未来全球物联网连接…