本文最后更新于167 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

1. 初始状态分析
- 当前分支:
main分支(main*表示当前所在分支),指向c5。 - 提交历史:线性结构
c0 → c1 → c2 → c3 → c4 → c5,另有标签overHere指向c1。 - 目标结构:
- 需对
main分支执行交互式变基,保留c3'、c5'、c4'提交('表示调整后的新提交); - 最终
main分支基于overHere(c1)重新排列提交,形成c0 → c1 → c3' → c5' → c4'。
- 需对
2. 核心概念:交互式变基(git rebase -i)
- 作用:在变基过程中,手动编辑提交历史(如删除、合并、重排、修改提交说明),让历史更简洁或符合规范。
- 流程:
- 执行
git rebase -i <目标提交>,进入交互界面。 - 通过编辑指令(
pick/reword/squash/drop等)调整提交。(沙盒中通过鼠标拖动调整顺序,点击删除) - 保存退出后,Git 按指令重写提交历史。
- 执行
3. 通关步骤(分阶段执行)
阶段 1:启动交互式变基
目标是将 main 分支的提交 “重新嫁接” 到 overHere(c1),所以选择 c1 作为变基目标。
执行命令:
bash
git rebase -i HEAD~4
- 作用:
- Git 会列出(
c2、c3、c4、c5)。
- Git 会列出(

点击删除c2,拖动调整顺序c3->c5->c6
阶段 4:完成变基,匹配目标结构
执行完交互式变基后,main 分支的提交历史会变为: c0 → c1 → c3' → c5' → c4'
此时,main 分支结构与右侧目标完全匹配,关卡自动通关。

简单说,这关的核心是 “用 git rebase -i 手动编辑提交历史”,掌握交互式变基的指令,实现提交的删除、重排,让分支历史更简洁规范 。






