直接回答

rebase(变基)是把当前分支的提交"摘下来",逐个重新应用到另一分支的最新提交之上,相当于把分支起点"搬"到目标分支头部,让历史呈一条直线。与 merge 的区别:merge 创建一个合并提交、保留两条分支的真实分叉历史;rebase 不产生合并提交、历史线性整洁,但它重写了提交(产生新的 commit 对象和哈希)。

展开解析

典型用法:feature 分支开发期间 main 前进了,用 git rebase main 让自己的提交基于最新 main,之后合并就是 fast-forward;交互式 git rebase -i 还能整理提交(squash、reword、删除)。merge 保留"何时分出、何时合回"的真实脉络,冲突只需解一次。关键红线:不要 rebase 已推送、别人可能基于它工作的公共分支——重写历史会让协作者仓库分叉,黄金法则是 rebase 只用于本地未共享的提交。取舍:追求线性可读历史选 rebase;需要审计真实协作过程或多人共用长期分支时用 merge 更安全。追问:rebase 时同一冲突可能要逐提交解决多次的原因、pull --rebase 与普通 pull 的差异。