news 2026/6/15 15:50:38

蓝易云 - git rebase和merge区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
蓝易云 - git rebase和merge区别

蓝易云|Gitrebasemerge的区别:选型原则 + 典型场景(工程化讲清楚)🧭

mergerebase都是在“合并两条开发线”,最终代码快照可以一样,但差别在于:你选择保留怎样的历史结构与审计线索。Git 官方书籍明确指出:差异主要体现在历史而非结果。(Git)


1)一句话结论(别绕弯)✅

  • merge:保留真实分叉历史,把两条分支“汇合”,必要时生成合并提交(merge commit)。(Git)

  • rebase:重写历史,把你的提交“按顺序重放”到新的基底上,形成更线性的提交链;代价是提交 ID 会变化(本质是新提交)。(Git)


2)直观图:历史长什么样(看完就懂)🙂

gitGraph commit id:"A" commit id:"B" branch feature checkout feature commit id:"C" commit id:"D" checkout main commit id:"E" merge feature id:"M (merge)"

**解释:**这是merge的典型形态:保留分叉与汇合点M,审计很清晰。

gitGraph commit id:"A" commit id:"B" branch feature checkout feature commit id:"C" commit id:"D" checkout main commit id:"E" checkout feature commit id:"C'" commit id:"D'"

**解释:**这是rebase的典型形态:C/D被“重放”为C'/D',历史更直,但属于改写。(Git)


3)对比表:工程决策看这张就够了 📌

维度mergerebase
历史策略保留分支真实轨迹重写为线性历史
是否改提交 ID通常不改会改(重放生成新提交)(Git)
典型产物merge commit / 或 fast-forward一条直线提交链
风险点历史更“树状”,有时看着乱共享分支上 rebase 容易“撞车”(GitLab 文档)
适用场景上游集成、公共分支合并个人分支整理提交、PR 前清理

4)命令怎么用:给你“可复制”的标准动作 🛠️

4.1 用merge把功能分支合入主分支

git checkout main git pull git merge feature/login --no-ff

解释:

  • git checkout main:切到主分支,明确“合入目标”。

  • git pull:先把本地 main 同步到最新,减少不必要冲突。

  • git merge feature/login --no-ff:即使可以快进也强制生成merge commit,利于留痕与回溯;--ff/--no-ff行为在官方文档里有明确说明。(Git)

4.2 用rebase把功能分支“挪到”最新主分支之上

git checkout feature/login git fetch origin git rebase origin/main

解释:

  • git fetch origin:只拉取远端引用,不改你当前分支,更安全可控。

  • git rebase origin/main:把 feature 上的提交按顺序重放到origin/main之上,官方对“replay commits”的描述非常明确。(Git)

4.3 冲突处理(rebase 场景)

# 解决冲突后 git add -A git rebase --continue

解释:

  • git add -A:把已解决的文件加入暂存区,告诉 Git “这部分我确认好了”。

  • git rebase --continue:继续重放下一笔提交,直到完成。

git rebase --abort

**解释:**中止 rebase,回到开始前的状态,属于“止损按钮”。


5)怎么选:我给你一条不绕弯的团队规则 😄

  • 公共主干(main/master/release)优先用 merge:历史真实、协作成本低。(atlassian.com)

  • 个人功能分支在提 PR 前,用 rebase 把提交整理成“能审、能回滚”的形态(必要时交互式 rebase 合并碎提交)。(Git)

  • 重点红线:不要对已推送、多人共享的分支随意 rebase,因为它会重写历史,容易引发他人分支对不齐与二次冲突。(GitLab 文档)

如果你告诉我你们团队是“强制线性历史”还是“保留 merge commit”,以及是否使用 PR 的 Squash 策略,我可以给你一套更贴合你们交付节奏的分支规范(包含git pull --rebase的使用边界与回滚策略)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 10:14:16

Qwen2.5-7B大模型推理指南|vLLM加速与生产调优

Qwen2.5-7B大模型推理指南|vLLM加速与生产调优 在当前大模型工程化落地的关键阶段,如何高效部署一个兼具长上下文理解、多语言支持和结构化输出能力的中等规模语言模型,成为企业AI平台建设的核心命题。阿里通义千问推出的 Qwen2.5-7B-Instruc…

作者头像 李华
网站建设 2026/6/15 10:14:44

Rembg抠图技术揭秘:如何实现边缘平滑处理

Rembg抠图技术揭秘:如何实现边缘平滑处理 1. 引言:智能万能抠图 - Rembg 在图像处理领域,自动去背景(Image Matting)一直是视觉内容创作的核心需求。无论是电商商品图精修、证件照换底色,还是社交媒体内容…

作者头像 李华
网站建设 2026/6/15 10:10:23

AI音视频智能识别标识系统:让视听内容可感可溯

生成式AI催生了大量合成音视频,从虚假新闻片段到仿冒通话诈骗,亟需技术构建内容安全与高效应用的双重屏障。AI音视频智能识别标识系统,以多模态AI技术为核心,不仅能为视听内容打“数字身份证”实现溯源鉴伪,更在语音转…

作者头像 李华
网站建设 2026/6/15 10:14:32

玩转Qwen2.5-7B-Instruct|多语言长文本生成与Chainlit交互实现

玩转Qwen2.5-7B-Instruct|多语言长文本生成与Chainlit交互实现 一、引言:为何选择 Qwen2.5-7B-Instruct Chainlit 组合? 随着大模型在自然语言处理领域的持续演进,高效部署与友好交互已成为落地应用的两大核心诉求。通义千问团…

作者头像 李华
网站建设 2026/6/15 6:50:31

应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了

本文希望提供一种更简单的方式,来理解这些容易混淆的技术概念:Nginx、Ingress、Ingress Controller、Ingress API、Nginx Ingress、Higress、Gateway API。 Nginx 和 Kubernetes 我们先按和 Kubernetes 是否有关,分为两类: Ngi…

作者头像 李华
网站建设 2026/6/15 10:26:11

AI 英语学习系统的技术框架

开发一个 AI 英语学习系统不再是简单的“前端后端”结构,而是演变为一个以大模型编排为核心的多层架构。以下是目前开发 AI 英语学习系统的标准技术框架:1. 前端交互层负责采集用户的语音、图像输入,并提供丝滑的交互体验。跨平台框架&#x…

作者头像 李华