news 2026/4/23 21:06:35

蓝易云 - 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/4/23 16:11:32

Qwen2.5-7B大模型微调全解析|网页推理与LoRA技术结合应用

Qwen2.5-7B大模型微调全解析|网页推理与LoRA技术结合应用 一、前言 随着大语言模型(LLM)在自然语言处理领域的广泛应用,如何高效地对预训练模型进行定制化微调成为开发者关注的核心问题。本文将围绕阿里云开源的 Qwen2.5-7B 大型…

作者头像 李华
网站建设 2026/4/23 13:19:01

基于Intel MiDaS的深度估计实践|附WebUI操作与热力图可视化

基于Intel MiDaS的深度估计实践|附WebUI操作与热力图可视化 🌐 项目背景与技术选型 在三维视觉感知领域,单目深度估计(Monocular Depth Estimation, MDE) 是一项极具挑战但又广泛应用的技术。它旨在从一张普通的2D图…

作者头像 李华
网站建设 2026/4/23 16:12:25

Ollama + Qwen2.5-7B:开启你的本地大语言模型之旅

Ollama Qwen2.5-7B:开启你的本地大语言模型之旅 在生成式AI迅猛发展的今天,越来越多的开发者和研究者希望能够在本地环境中运行强大的大语言模型(LLM),以实现更安全、可控且低延迟的应用体验。然而,传统部…

作者头像 李华
网站建设 2026/4/23 11:38:52

Rembg抠图GPU加速:CUDA配置指南

Rembg抠图GPU加速:CUDA配置指南 1. 引言:智能万能抠图 - Rembg 在图像处理与内容创作领域,自动去背景是一项高频且关键的需求。无论是电商商品图精修、社交媒体素材制作,还是AI生成内容(AIGC)的预处理环节…

作者头像 李华
网站建设 2026/4/23 13:10:50

Mac用户福音:ResNet18物体识别,云端GPU突破硬件限制

Mac用户福音:ResNet18物体识别,云端GPU突破硬件限制 1. 为什么Mac用户需要云端GPU? 作为苹果电脑的忠实用户,你可能已经发现一个尴尬的现实:深度学习的主流教程几乎都围绕NVIDIA显卡(N卡)展开…

作者头像 李华
网站建设 2026/4/23 14:49:45

摄影后期自动化:Rembg脚本批量处理

摄影后期自动化:Rembg脚本批量处理 1. 引言:摄影后期的效率瓶颈与AI破局 在商业摄影、电商图册制作和内容创作领域,图像去背景是一项高频且耗时的基础操作。传统方式依赖设计师使用 Photoshop 等工具手动抠图,不仅成本高、周期长…

作者头像 李华