首页 置换 选车 估价 问答 生活 经销商 车管所 汽车资讯 汽车销量 车牌查询 今日油价 天气预报
您的位置: 首页 > 生活 > 其他 > git代码合并的方式(Git进阶合并与变基)
git代码合并的方式(Git进阶合并与变基)
更新时间:2024-07-13 19:21:13

在 git 中整合来自不同分支的修改主要有两种方法:合并(merge)以及 变基(rebase)

合并(merge)

git代码合并的方式(Git进阶合并与变基)1

merge流程图

merge的原理是找到这两个分支的祖先commit,在两个分支最新的commit进行三方对比合并。

注:git会对每个文件进行一个哈希计算,这个值一样的话说明文件没有改动过

上图中,共同的祖先commit2,master最新commit6,develop最新commit5,merge会基于2,5,6这三个commit进行对比

  1. commit6和commit2对比,如果文件的哈希值不一样,同时commit5和commit2对比,发现一样,说明只有commit6修改了这个文件,这种情况直接合并,不会提示
  2. commit6和commit2对比,如果文件的哈希值不一样,同时commit5和commit2对比,哈希值不一样,说明两个分支都对同一个文件修改了,则提示冲突,需要我们手动merge

最后合并完后会生成一个新的commit7

变基(rebase)

上图的另一种合并方法:在develop分支上提取出commit4,5的修改,然后在master的最新的commit6的基础上应用commit4,5的修改,这种方式就是变基(rebase)。你可以使用 rebase命令将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样。

git代码合并的方式(Git进阶合并与变基)2

rebase结果

这里新增了commit4,5,在merge时有可能都会有冲突,这里有可能需要手动merge两次,因为rebase时可能在提交commit4的时候提示冲突一次,在提交commit5的时候又冲突一次

总结
  • rebase:合并后分支图谱好看,一条线,但合并过程中出现冲突的话,比较麻烦(rebase过程中,一个commit出现冲突,下一个commit也极有可能出现冲突,一次rebase可能要解决多次冲突);
  • merge:合并后分支图谱不好看,一堆线交错,但合并有冲突的话,只要解一次就行了;

一般多人合作的时候优先考虑合并,一个人玩的时候可以用变基。

,
相关推荐RECOMMEND
新款五菱宏光s全面介绍(新款五菱宏光S值得入手么)
新款五菱宏光s全面介绍?五菱宏光s新款指导价为4.28-5.58万,价格合格、性价比依旧是前置发动机的微面类型里最高的,下面我们就来聊聊关于新款五菱宏光s全面介绍?接下来我们就一起去了解一下吧!新款五...
心理测试你的内心明辨是非指数(凭感觉选一颗小石子)
心理测试:凭感觉选一颗小石子,测你的身上有什么气场?ABCD测试结果仅供参考A、不怒自威的气场你是那种不怒自威的气场,哪怕是气定神闲,没有表情地坐在角落里,也没有人敢上前接近你。因为你的存在感低,也有...
为什么喝海水会越来越渴(为什么海水绝对不能喝)
水与生命联系密切。资料显示,人体从总水量中,失去1%~2%(0.8L)时,就会感觉到强烈的口渴,失去5%(2L)时,就会感到昏昏沉沉,失去12%时,就会威胁到生命。维持人体生命活动,绝对少不了水。人类...
荒木最不喜欢的jojo(星尘斗士里这几个梗)
在《JOJO的奇妙冒险星尘斗士》这部动漫中,主人公一行人从日本出发,一路途经了香港、新加坡、印度等地方,有朋友戏称,这个线路其实就是当初原作者荒木飞吕彦的旅游线路。主角团路过这些地方的时候,各自面对的...
上浆挂糊区别(细说挂糊与上浆)
挂糊与上浆是中餐工艺中常见的一种技法,行业内又习惯称之为"着衣",它们是烹调前一项比较重要的操作程序,所用的原料比例是否合适,操作方法是否正确等,都直接影响菜肴的色、香、味、形、质、养等诸多方面。上周...
肉松面包里的肉松是烘焙肉松吗(面包房里的肉松有多少是真肉)
作为吃货一枚,我在上学期间经常制作各种美味佳肴。我在网上教肉松的多种制作方法,用优质瘦猪肉炒出来的肉松品质最好。只是肉松好吃,然而,价格贵、耗时长,因为三斤猪肉才能炒出一斤肉松,而这一斤肉松要将近六个...