Git必知必会基础(11):merge和rebase的区别
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/10854115.html
merge和rebase使用回顾
上两篇我们分别演示了merge和rebase的使用,分别详见:
https://www.cnblogs.com/uncleyong/p/17967432
https://www.cnblogs.com/uncleyong/p/17978213
下面我们来总结下二者的差异。
merge
作用:git merge用来合并分支,用于将两个或多个分支的代码合并到一个新的或现有的分支中
合并:会产生一个新的合并提交,并且每个分支的历史记录都会保存(不修改提交历史,可以清晰地看到哪些提交是在哪个分支上完成的)
1 2 3 4 5 6 7 | 将dev合并到master 1、dev commit 2、切换到master,与origin/master同步 3、git merge dev |
优点:合并保留了每个分支的独立性,即使两个分支合并了,它们的提交历史仍然可以追溯到各自的起点
缺点:合并图非线性,如果分支多且合并多,互相交叉,易读性不高
合并前
合并后
95fc216以下是merge的合并图
rebase
作用:git rebase用来变基,就是重新定义(re)起点(base)的作用,即重新定义分支的版本,能实现和merge相同的效果,将一个分支的修改合并到另一个分支上
合并:会将当前分支的提交“挪动”到rebase的目标分支上,使得分支的提交历史变得更加线性;会修改提交历史,因为它将当前分支的提交重新应用到了新的基础上
1 2 3 4 5 6 7 8 9 | 将dev合并到master 1、dev commit 2、切换到master,与origin/master同步 3、切换到dev,git rebase maser,如果有冲突就修改冲突文件,git rebase -- continue 4、切换到master,git merge dev |
优点:git rebase 对两个分叉的分支合并后,历史记录是一条直线(线性),会显得更为整洁,合并图更易读
另外:
1、不要对master分支进行rebase
2、仅对本地自己的提交且没有推送到远程仓库的分支做rebase操作
95fc216以上是rebase的合并图
__EOF__

关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2023-01-22 SpringBoot配置文件详解
2023-01-22 SpringBoot简易教程(01):SpringBoot基础入门
2021-01-22 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 0: invalid continuation byte
2021-01-22 宿主机ping不通虚拟机,虚拟机能ping通宿主机
2020-01-22 【V】自动化必备:自动化持续集成环境搭建(下):git + maven + jenkins