当前位置: 首页 > news >正文

git merge与rebase区别以及实际应用

在 Git 中,merge 和 rebase 是两种将分支的更改合并到一起的常用方法。虽然它们都可以实现类似的目标,但它们的工作方式和效果有所不同。

1. Git Merge

  • 定义:git merge 是将两个分支的历史合并在一起的一种操作。当你执行 git merge 时,Git 会创建一个新的“合并提交”,这使得两个分支的历史记录都保持不变。
  • 特点:
    • 保留历史记录: 合并会保留所有提交的历史,形成一个非线性的提交历史。
    • 非破坏性:对现有分支不会以任何方式进行更改。
    • 简单易用: 对于初学者而言,合并的过程相对简单。
    • 适用于公共分支: 合并通常用于将功能分支合并回主分支(如 main 或 master)。
git checkout feature
git merge master
// 缩写为
git merge feature master

在这里插入图片描述

2. Git Rebase

  • 定义:git rebase 是一种将一个分支上的更改“应用”到另一个分支的方法。它会将当前分支的所有提交转移到目标分支的最顶端,从而形成一条线性的提交历史。
  • 特点:
    • 可能导致冲突: 在 rebase 过程中,如果存在冲突,需要手动解决这些冲突。
    • 更清晰的项目历史:消除了merge所需要的不必要的合并提交,且会产生完美线性的项目历史记录。
    • 不适用于公共分支: 在公共分支上使用 rebase 可能会导致其他开发者的困惑,因为它会重写历史。
git checkout feature
git rebase master
// 缩写
git rebase feature master

在这里插入图片描述

3. 总结与应用

  • git rebase的原则:不能在一个共享的分支上进行Git rebase操作。
  • 融合代码到公共分支的时使用git merge,而不用git rebase
  • 融合代码到个人分支的时候使用git rebase,可以不污染分支的提交记录,形成简洁的线性提交历史记录。
  • 使用rebase合并多次提交记录
// 尝试合并分支的最近 4 次提交纪录
git rebase -i HEAD~4
//这时候,会自动进入 vi 编辑模式:
// 进入编辑模式,第一列为操作指令,第二列为commit号,第三列为commit信息。git rebase --abort  
git rebase --continue
http://www.lryc.cn/news/518769.html

相关文章:

  • kvm虚拟机出现应用程序无法正常启动报0xc0000142错误
  • Redis 安装与 Spring Boot 集成指南
  • Flink集成TDEngine来批处理或流式读取数据进行流批一体化计算(Flink SQL)拿来即用的案例
  • 【STM32】利用SysTick定时器定时1s
  • Python中的format格式化、填充与对齐、数字格式化方式
  • winform第三方界面开源库AntdUI的使用教程保姆级环境设置篇
  • 如何使用Yarn Workspaces实现Monorepo模式在一个仓库中管理多个项目
  • SpringCloud系列教程:微服务的未来(十一)服务注册、服务发现、OpenFeign快速入门
  • 物联网:七天构建一个闭环的物联网DEMO
  • 景联文科技提供高质量多模态数据处理服务,驱动AI新时代
  • c#13新特性
  • LeetCode LCP17速算机器人
  • 杭州铭师堂的云原生升级实践
  • 计算机网络之---MAC协议
  • 微服务面试相关
  • Google发布图像生成新工具Whisk:无需复杂提示词,使用图像和人工智能将想法可视化并重新混合
  • docker pull(拉取镜像)的时候,无法下载或者卡在Waiting的解决方法
  • 51c~Pytorch~合集4
  • windows下,golang+vscode+delve 远程调试
  • 弥散张量分析开源软件 DSI Studio 简体中文汉化版可以下载了
  • 视频编辑最新SOTA!港中文Adobe等发布统一视频生成传播框架——GenProp
  • 多维方向性增强分割通过大规模视觉模型实现|文献速递-视觉大模型医疗图像应用
  • 【Linux探索学习】第二十五弹——动静态库:Linux 中静态库与动态库的详细解析
  • 远程和本地文件的互相同步
  • 自然语言处理之jieba分词和TF-IDF分析
  • 探索式测试
  • 服务器数据恢复—raid5故障导致上层ORACLE无法启动的数据恢复案例
  • ISP各模块功能介绍
  • Python 数据建模完整流程指南
  • 深入学习RocketMQ