Git合并分支rebase和merge区别

Git可视化工具下载:Git - GUI Clients

合并前分支:

Merge之后的结果:

rebase之后的结果:

1 Git分支合并rebase和merge区别
  • merge工作原理:假如在master分支上因为业务需要临时拉出个分支叫dropdown,现在主分支master有新的提交,dropdown分支也有提交,业务开发完成要进行分支合并,此时两个分支的共同祖先(即拉分支的节点)和两个分支中的最新提交进行一个三方合并,合并中修改的内容生成一个新的commit,这个merge的效果简单来说就是合并两个分支生成一个新的提交。
  • rebase工作原理:dropdown分支合并到master分支上,执行rebase后依次将当前的分支提交合并到目标分支上,然后将原分支上已提交的commit删除,也就是分支线log日志记录信息被删掉了只保留一个主的分支提交记录。
2 merge OR rebase:

(1)可以看出merge结果能够体现出时间线,但是rebase会打乱时间线。

(2)rebase看起来比较简洁,merge看起来不太简洁。

(3)最终结果是都把代码合起来了,所以具体怎么使用这两个命令看项目需要。

3 常用命令缩写
  • git pull 拉取代码,git pull 相当于是 git fetch + git merge,
  • git pull -r,也就是git pull --rebase,相当于 git fetch + git rebase
4 应用场景
  • 不要在公共分支使用rebase
  • 本地和远端对应同一条分支,优先使用rebase,而不是merge
相关推荐
tonylua2 小时前
从神州22极限救援,看懂Git高级玩法
git
骑鱼过海的猫1234 小时前
【git】git学习记录
git·学习·elasticsearch
测试人社区—84166 小时前
Mocking与Stubbing在单元测试中的正确使用
人工智能·git·单元测试·自动化·bug·postman
milanyangbo10 小时前
像Git一样管理数据:深入解析数据库并发控制MVCC的实现
服务器·数据库·git·后端·mysql·架构·系统架构
猫头虎-人工智能10 小时前
openEuler远程批量部署实战 SSH VNC IPMI全流程解析
运维·git·开源·ssh·github·开放原子·开源软件
Cx330❀11 小时前
Git 基础操作通关指南:版本回退、撤销修改与文件删除深度解析
大数据·运维·服务器·git·算法·搜索引擎·面试
CaracalTiger11 小时前
在openEuler操作系统中多样性算力支持与性能压力测试操作
linux·运维·git·开源·开放原子·压力测试·开源软件
草莓熊Lotso12 小时前
企业级 Git 分支管理模型实战:从 Git Flow 到 DevOps 落地
运维·服务器·开发语言·c++·人工智能·git·devops
小王不爱笑1321 天前
gitignore基本使用+Git分支使用
git
db_cy_20621 天前
Git对服务器配置文件进行版本控制
运维·服务器·git