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

【Git】在更新项目时“将传入更改合并到当前分支“和”在传入更改上变基当前分支“有什么区别

1. 将传入更改合并到当前分支(Merge)

  • 本质上是执行:

    git pull --merge
    
  • 过程:

    • Git 会把远程分支的最新提交合并到你的当前分支。
    • 如果本地有新的提交,合并会产生一个新的 合并提交(merge commit),历史会呈现分叉和合并的图形。
  • 特点:

    • 保留完整历史,清晰展现“谁在什么时候分支、什么时候合并”。
    • 历史可能比较“乱”,尤其是多人协作时,日志里会有很多 merge commit。

2. 在传入更改上变基当前分支(Rebase)

  • 本质上是执行:

    git pull --rebase
    
  • 过程:

    • Git 会先把你本地分支的提交“拿下来”,让当前分支回到远程分支的最新状态,再把你本地的提交“重新应用”到这之上。
    • 结果就是历史看起来像是你在远程分支的最新提交之后再提交了你的更改。
  • 特点:

    • 历史干净,线性,没有额外的 merge commit。
    • 但是提交的哈希值会变化(因为是“重新应用”),如果这些提交已经推送过远程,rebase 后需要 --force 推送,容易出问题。

举个例子

远程分支历史:

A---B---C   (origin/main)

本地你有新提交:

A---B---D   (main)

如果选择 合并(merge)

A---B---C\   \D---M   (main)

M 是新产生的合并提交。

如果选择 变基(rebase)

A---B---C---D'   (main)

看起来就像 D 是在 C 之后产生的。

http://www.agseo.cn/news/799/

相关文章:

  • AIGEO重塑商业新规则
  • MySQL常见存储引擎
  • 国内开发者如何选择代码管理平台?Gitee、GitHub等主流工具深度解析
  • 【Git】常见的 commit type 及用法
  • 【IEEE出版】第六届机器学习与计算机应用国际学术会议
  • 【URP】UnityHLSL顶点片元语义详解
  • 跨网文件交换系统案例分享:金融、半导体制造、医院统统都有!
  • 尚硅谷后台管理系统
  • 第二届人工智能与自然语言处理国际学术会议(AINLP 2025)
  • 并不是真的路过而已 / 也不是真的不会想你 - Urd
  • 跨网文件摆渡软件如何选择?企业数字化转型的关键决策指南!
  • 80、颜色求和
  • 纷享销客重磅亮相SCEE2025西南渠道生态峰会
  • CF1644题解
  • 花椒直播首次开源推流器组件 为鸿蒙开发者提供高性能推流解决方案
  • Avalonia 学习笔记02. Fonts and Animations(字体和动画) (转载)
  • 供应商图纸协同怎么做?安全与效率并行的实践方案!
  • 【IEEE出版】第九届电气、机械与计算机工程国际学术会议(ICEMCE 2025)
  • 综述-human parsing
  • 英语_阅读_useful resources_待读
  • winform定时任务
  • 第五届现代教育技术与社会科学国际学术会议(ICMETSS 2025)
  • 梅剑华:人工智能与因果推断——兼论奇点问题(哈哈,Why框架就是)
  • 基于Python+Vue开发的旅游景区管理系统源码+运行
  • 剑指offer
  • nvm安装与配置
  • rust适合写哪些程序 - ukyo-
  • Exadata计算节点的内存出现故障,导致CPU耗尽
  • 真行!Claude 全面封禁中国。。
  • 磁盘控制器与磁盘驱动器的关系