搞懂 Git Rebase 和 Merge 的区别
目录
搞懂 Git Rebase 和 Merge 的区别
这个问题几乎困扰过每一个开发者,今天来讲清楚。
Merge
git checkout main
git merge feature-branch会创建一个合并提交。历史记录清晰展示了两条分支在某个节点汇合。适合共享分支。
Rebase
git checkout feature-branch
git rebase main将你的提交"移植"到 main 最新节点之后。历史记录看起来是线性的,就像你是在 main 更新后才开始做功能一样。
什么时候用哪个?
| 场景 | 推荐方式 |
|---|---|
| 共享分支(main、dev) | merge |
| 个人功能分支 | rebase |
| 提 PR 之前整理提交 | rebase |
| PR 合并后 | 无所谓 |
黄金原则
永远不要对别人正在用的分支做 rebase。 重写共享历史会把所有人搞乱。

