Learn Git Branching:提交的技巧
这道题是Learn Git Branching的练习题叫提交的技巧 #1。题目分析当前状态左侧图C0 ← C1 ← C2 ← C3main指向C1newImage指向C2caption*当前分支指向C3目标状态右侧图main和caption最终指向同一个提交newImage在C1之后单独一条线整体结构是对newImage的提交做了修改后caption的内容被重新应用上去题目意图你需要修改newImageC2这个提交但captionC3依赖它。直接修改 C2 很麻烦所以正确思路是用git rebase -i调整顺序 → 修改 → 再 rebase 回来解题步骤# 1. 把 caption 分支上的提交顺序对调把 newImage 的提交放到最上面gitrebase-iHEAD~2# 在交互界面中把 newImage 对应的提交移到 caption 提交的上方# 2. 现在 newImage 在最顶对它进行修改gitcommit--amend# 3. 再次用 rebase -i 把顺序换回来caption 在上newImage 在下gitrebase-iHEAD~2# 4. 把 main 和 newImage 分支指向对应提交gitbranch-fmain HEADgitbranch-fnewImage HEAD~1# 5. 重置到正确位置gitrebase caption main核心思路总结步骤操作目的①rebase -i HEAD~2换序把要改的提交移到顶部②commit --amend修改该提交内容③rebase -i HEAD~2换回恢复原来顺序④移动分支指针让 main/newImage 指向正确位置这道题的核心考点就是当你想修改历史中间某个提交时先用 rebase -i 把它浮到顶部改完再换回来。