当前位置: 首页 > 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.rkmt.cn/news/626.html

相关文章:

  • 国内开发者如何选择代码管理平台?Gitee、GitHub等主流工具深度解析
  • 【Git】常见的 commit type 及用法
  • 【IEEE出版】第六届机器学习与计算机应用国际学术会议
  • 跨网文件摆渡软件如何选择?企业数字化转型的关键决策指南!
  • Avalonia 学习笔记02. Fonts and Animations(字体和动画) (转载)
  • 【IEEE出版】第九届电气、机械与计算机工程国际学术会议(ICEMCE 2025)
  • 英语_阅读_useful resources_待读
  • 第五届现代教育技术与社会科学国际学术会议(ICMETSS 2025)
  • 梅剑华:人工智能与因果推断——兼论奇点问题(哈哈,Why框架就是)
  • 真行!Claude 全面封禁中国。。
  • 质量QE的关键四个角色(DQE、SQE、PQE和CQE)
  • 剑指offer-28、数组中出现次数超过⼀半的数字
  • Redis是如何高效管理有限内存的?
  • PB9的数据窗口中文说明
  • PyPI包名的命名规则与pip的兼容性机制——为什么pip install sCIKit.-_LEarN也能成功
  • 一种简单粗暴的网页代理模式
  • 直播App源码功能大揭秘:主播PK、连麦互动与邀请奖励的技术与魅力
  • 这款开源调研系统越来越“懂事”了
  • qoj7511 Planar Graph
  • 30条顶级APT与蓝队攻防单行命令:网络战场终极对决
  • CF2138D
  • QBot - *--_
  • 222
  • 为Unity开发者准备的虚幻引擎指南
  • mtgsig1.2 4.03 分析
  • 内核知识地图
  • 文件不只是数据-一份稳健的文件处理指南
  • 【去日本玩了2】跟随空色轨迹一起去日本演出(2025年)
  • 基础操作指令
  • buildroot 工具使用问题