🏠 首页 攻略 git rebase 是什么?一行命令改写历史

git rebase 是什么?一行命令改写历史

git rebase 能重写 commit 历史,让提交记录更整洁。本文用类比讲清楚 rebase 是什么、怎么用、以及和 merge 的区别。

git rebase 是什么?

git rebase 是 Git 的一个命令,用来重写提交历史

通俗说:它能把你的一系列 commit “挪到"另一个分支的最新提交之后,让历史变得整洁。

一个类比

想象你在写一本连载小说,每写完一章就保存一次(commit)。

  • merge 像把两个作者的章节合在一起,保留所有人的原始保存记录
  • rebase 像把一个人写的章节重新整理,按时间顺序排列,看起来像一气呵成

什么时候用 rebase?

最常见的场景:你在开发分支上做了几个 commit,期间主分支也更新了。

开发分支:A - B - C
主分支:  A - D - E

你想让开发分支在最新的主分支基础上继续开发:

变成:    A - D - E - B' - C'

(B’ 和 C’ 是重放后的新版本)

怎么用?

# 切换到要 rebase 的分支
git checkout feature-branch

# 把该分支的提交"挪"到主分支最新提交之后
git rebase main

rebase vs merge 的区别

场景mergerebase
合并分支创建新的 merge commit不创建,直接重写历史
历史风格保留真实时间线线性整洁
适用场景共享分支本地开发分支
风险如果 rebase 已推送的提交会出问题

注意事项

  1. 不要 rebase 已推送的公共分支 — 会扰乱其他人的工作
  2. 本地开发分支可以放心 rebase — 这是 rebase 的正确用法
  3. rebase 后 push 需要 force push — 因为历史被改写了

一句话总结

rebase 是"整理提交历史"的工具,让项目记录更清晰,但别在共享分支上使用。

你的团队还在用 merge 还是 rebase?