跳转到内容

merge 与 rebase 的选用

  • 说清 mergerebase 各自保留什么、整理什么
  • 判断本地私有分支与共享分支分别该用哪种
  • 理解“可读性重要,协作信任更重要”

merge 会保留完整分支历史,适合把长期功能分支合回主分支;rebase 会把提交重新整理成一条线性历史,适合在本地整理私有提交。一个学生项目的实用经验是:

  • 本地只有你一个人开发时,用 rebase 整理提交
  • 你的提交已经推送到远端、且其他人可能基于该分支继续工作时,改用 merge

如果你在共享分支上随意执行 rebase -i 或强制推送,很容易把同学的本地分支打乱。记住:可读性很重要,但协作信任更重要。

Terminal window
# 本地整理私有提交(合入前)
git rebase main
# 共享分支合回主分支(保留历史)
git merge feature/quiz-report

先自己回答,再看答案:

  1. rebase 会把提交历史整理成什么形状?
  2. 为什么共享分支上不建议随意 rebase -i
  3. 什么情况下优先选 merge 而不是 rebase
参考答案
  1. 一条线性的历史,提交被“重放”到目标分支顶端。
  2. rebase 会改写提交记录,强制推送可能打乱基于该分支工作的队友。
  3. 提交已推送且可能被他人基于它继续开发时,merge 更安全。
  • merge 保留历史,适合共享分支;rebase 整理历史,适合本地私有提交
  • 已推送的分支不要随意 rebase 或强制推送
  • 拿不准时选 merge,协作信任比历史美观更重要
merge 与 rebase 小测
x
1 / 3

git rebase 的主要用途是?