Git:Rebase和Merge之间的区别,看完这篇文章你就懂了!

社区中长期以来一直在争论我们应该使用Merge还是Rebase。

有人会说Merge更好,因为它保留了最完整的工作历史。其他人则认为,Rebase变得更整洁,这使审阅者的生活更轻松,更高效。本文将解释合并和重新设置之间的区别是什么,使用它们之一有什么好处。

从根本上讲,合并和rebase提供了相同的目的,以将来自一个分支(有时倍数分支)的变化集成到另一个分支中。最常用的是在打开Pull请求之前将最新的Master或开发分支集成。虽然目的是相同的,但Merge和Rebase达到的方式不同。

> Image by Author

快速了解目标。想象一下,您有一个这样的分支“功能”,它是从“基础”的“开发”分支出来的。从那时起,您就完成了C,D,E的工作,并且对develop进行了2个更改,即A,B。现在,您想打开一个pull请求,将“您的功能”集成到“ develop分支”中。。在此之前,您必须将“开发分支”中的更改集成到“您的功能分支”中,这样您的拉取请求中就不会出现冲突。

Merge

> Image by Author

合并将在您的特征分支中将更改集成,并创建一个新的提交F. F是合并开发分支的提交,如果有的话,对冲突进行排序。此方法将为特征分支带来Develp分支的更改,即A和B。现在,您的特征分支上的提交是C,A,D,B,E,F.有3个添加到您的功能分支中的其他提交。

Rebase

> Image by Author

另一方面,rebase会移动整个功能分支,就像它从一开始就从开发分支的最新提交分支出来一样。Rebase将首先搜索功能分支的基础,然后将其更改为开发分支B上的最新提交,然后根据该基础B将所有提交重新应用到功能分支上。Rebase实际上是创建新提交,C’,D’,E’。原始提交保持不变。最后,它将要素分支指向的要素从E更改为E’。

优点

这两种方法之间的最大区别在于,合并保留了作品的完整历史记录,包括按时间顺序排列,而Rebase使提交变得整洁,仅与分支上的作品相关。当审阅者审阅您的PR时,如果您选择合并,她将看到A,B,C,D,E,F提交,如果您选择Rebase,则只会看到C,D,E。

合并具有较高的可追溯性。无论与该公关相关如何,您都可以找到整个工作历史。但它可能对审稿人来说是痛苦的,因为该分支包括许多无关的犯罪,并且往往很难识别它们。

Rebase的确可以使PR整洁,干净且相关,而不会产生嘈杂的提交。审阅者可以轻松了解此PR的含义以及该分支内进行的更改。但是,如果您想跟踪存储库的详尽历史记录,可能并没有太大帮助。

Merge具有更高的可追溯性,而Rebase则更整洁且易于审核。

那我应该使用哪一个?

这实际上取决于您的组织所采用的工作策略。您必须权衡Rebase的价值与Merge可追溯性的价值。这两种方法也可能同时应用,在某些情况下请使用某种方法。

根据我的个人经验,Rebase更为有利,因为它提供了与团队成员合作的更轻松的方式。而且在大多数时候,我们确实应该避免将与我们的工作无关的提交包含在PR中。这很容易导致混乱。

(本文由闻数起舞翻译自Christopher Tao的文章《The Differences between Rebase and Merge》,转载请注明出处,原文链接:
https://towardsdatascience.com/the-differences-between-rebase-and-merge-30c91cd18f30)

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机b级英语翻译,英语B级考试翻译必备常用短句

英语B级考试翻译必备常用短句1. Who would say like this?谁会这样说呢?2. What time shall we leave?我们什么时候出发呢?3. We are going to play golf this Sunday.我们这个星期天要去打高尔夫球。4. Do you want to go out or stay at home?你想出…

weblogic概览下的上下文根配置_Weblogic服务下获取上下文路劲问题

问题描述:如果一个项目用weblogic部署的服务,在web_inf文件夹下只有web.xml文件,没有配置weblogic.xml文件时,这是用类.class.getClassLoader().getResource("").getPath() 该方法获取到的绝对路劲是如下:/…

干货:SQLServer数据库基于PowerDesigner逆向工程生成PDM文件

在日常的开发工程中,很多时候需要提供数据库设计文档,如果当时数据库设计没有采用PowerDesinger,到后期需要给客户提供数据库设计文档、后期项目运维就会比较麻烦,今天给大家介绍如何使用PowerDesigner的逆向工程生成SQLServer数据…

检查 Linux 服务器性能

如何用十条命令在一分钟内检查 Linux 服务器性能 如果你的Linux服务器突然负载暴增,报警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问…

html 圆球的百分比,HTML5 很酷的球形器皿中水波状的进度条

CSS语言:CSSSCSS确定* {box-sizing: border-box;}html,body {height: 100%;}body {background-color: #1a1a1a;font-family: sans-serif;font-size: 15px;color: #ccc;}input[type"text"] {background-color: transparent;margin-top: 30px;border: 0;bor…

SQLServer基础:TOP、OFFSET-FETCH、SET ROWCOUNT用法笔记

今天给大家介绍一下TOP、OFFSET-FETCH、SET ROWCOUNT用法笔记,希望对大家能有所帮助!1、 TOP用法语法格式:TOP ( expression ) [ PERCENT ] [ WITH TIES ]expression:返回行数的数值表达式PERCENT:指返回的结果集行的百…

取本地数据_深入理解Kafka服务端之Follower副本如何同步Leader副本的数据

一、场景分析Kafka采用的是主写主读的方式,即客户端的读写请求都由分区的Leader副本处理,那么Follower副本要想保证和Leader副本数据一致,就需要不断地从Leader副本拉取消息来进行同步。由于同一个分区的Leader副本和Follower副本分布在不同的…

用计算机0和1表达难舍之情,表达不舍之情的句子是

1. 表达难舍之情的句子“悲莫悲兮生别离,乐莫乐兮新相知”,离别送行情难自禁。1.与君离别意,同是宦游人。 海内存知己,天涯若比邻。(王勃《送杜少府之任蜀州》) 2.又送王孙去,萋萋满别情。(李白《送友人》) 3.春草明年…

SQLServer子查询相关知识笔记

今天给大家介绍以下SQLServer子查询相关知识,希望对大家能有所帮助!1、子查询概念介绍子查询可以嵌套在SELECT、INSERT、UPDATE、DELETE语句或其他子查询语句中的查询,子查询一般作为查询中间结果集角色,子查询也称为内部查询或内…

使用react的好处_react的优点是什么呀-问答-阿里云开发者社区-阿里云

首先react通过介绍新的声明式语法JSX来重新定义视图开发,优点其实官网就有,不过我可以简单说两句:第一,学会了react以及这个JSX语法,你不光可以通过react写web;也可以通过react-native写ios或者android的应…

Linux运行级详解

对于那些在DOS/Win9x/NT平台下的高级用户而言,Linux似乎是一个怪物。没有config.sys,没有 autoexec.bat,具有个人特色的机器配置不知道从何开始。 需要说明的是,很多人认为Linux是Unix的一个克隆,但是,这种…

软件:推荐八款电脑实用软件,你都用过吗?

今天给大家推荐八款电脑非常实用的软件,希望对大家能有所帮助!1、Audio Hijack Pro一款Mac 上的录音软件。它比较强大的功能是可以录制多个应用的声音,然后组合成一个结果,然后输出。2、快贴一个跨平台剪切板同步软件。你只需要简…

计算机芯片级维修包括哪些,电脑芯片级维修教程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼让你足不出门,就能像在培训班里学芯片级维修一样,也能成为一位硬件维修工程师。给你节省上千的学费。全部资料从基础学起,没电子电路基础的朋友一样能很快的上手。让你开一家专业的计算机硬件芯片…

matlab 神经网络设计多层隐含层_数据预测之BP神经网络具体应用以及matlab代码

1.具体应用实例。根据表2,预测序号15的跳高成绩。表2 国内男子跳高运动员各项素质指标序号跳高成绩()30行进跑(s)立定三级跳远()助跑摸高()助跑4—6步跳高()负重深蹲杠铃()杠铃半蹲系数100(s)抓举()12.243.29.63.452.151402.811.05022.333.210.33.752.21203.410.970…

硬件:开机如何进BIOS,U盘启动快捷键一键查询

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

考研计算机专业课统考吗,09考研计算机专业课统考增至4部分内容

北京考试报讯(记者 陈霄飞) 全国硕士研究生统一入学考试计算机科学与技术学科的初试专业课考试明年将实行联考。有关考研辅导专家认为,针对初试专业课调整为4部分内容的情况,计划报考该专业的考生要提早调整复习计划,适当扩大复习范围。初试专…