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

1. 初始状态分析

  • 当前分支main 分支(main* 表示当前所在分支)
  • 提交历史:只有 2 个基础提交 c0c1(左侧蓝色区域)
  • 目标结构:
    • 需要创建 bugFix 分支,在 bugFix 上提交 c2
    • bugFix 执行 rebase,将其提交 “嫁接” 到 main 最新提交后;
    • 最终形成 main 分支整合 bugFix 提交的线性结构(右侧粉色区域)

2. 核心命令与逻辑

  • git branch <分支名>:创建新分支(基于当前 HEAD)。
  • git checkout <分支名>:切换分支(移动 HEAD 指针)。
  • git commit:提交代码,延伸当前分支的提交历史。
  • git rebase <目标分支>变基核心操作,将当前分支的提交 “重新嫁接” 到目标分支的最新提交之后,让提交历史更线性。

3. 通关步骤(分阶段执行)

阶段 1:创建 bugFix 分支并提交

  1. 创建 bugFix 分支:bash git branch bugFix
    • 作用:基于当前 main 分支的 c1,创建新分支 bugFix(此时 mainbugFix 都指向 c1)。
  2. 切换到 bugFix 分支:bash git checkout bugFix
    • 作用:让 HEAD 指针移动到 bugFix 分支,后续提交会延伸 bugFix 的历史。
    (快捷创建并切换:git checkout -b <分支名>(等价于 git branch <分支名> + git checkout <分支名>)。)
  3. bugFix 上提交 c2: 关卡默认模拟 “有修改待提交”,直接执行:bash git commit
    • 作用:bugFix 分支向前延伸,新增提交 c2(结构:c0 → c1 → c2bugFix* 指向 c2)。

阶段 2:对 bugFix 执行 rebase 操作

  1. 切换回 main 分支并提交 c3
    • 先切回main分支:bash git checkout main
      • 作用:HEAD 指针切回 main 分支(此时 main 仍指向 c1)。
    • main上提交c3:bash git commit
      • 作用:main 分支向前延伸,新增提交 c3(结构:c0 → c1 → c3main* 指向 c3)。
  2. 切换到 bugFix 分支,执行 rebase
    • 切回bugFix分支:bash git checkout bugFix
    • main执行变基:bash git rebase main
      • 作用:将 bugFix 分支的提交 c2重新嫁接main 分支的最新提交 c3 之后。执行后,bugFix 的提交会变成 c2'(哈希值改变,代表 “重新应用” 的提交),结构变为 c0 → c1 → c3 → c2'bugFix* 指向 c2')。

4. 完成验证

执行完上述步骤后,左侧分支结构会与右侧目标完全匹配:

  • main 分支经过 c0 → c1 → c3,再通过 rebase 整合 bugFixc2',最终形成线性历史;
  • bugFix 分支的提交被 “嫁接” 到 main 最新提交后,关卡自动通关。

5. 关键知识点延伸

  • 变基 vs 合并:
    • git merge 会创建合并提交,保留分支分叉历史;
    • git rebase 会改写提交历史,让分支结构更线性(适合整理个人开发分支,不建议对公共分支使用)。
  • 变基的本质:将当前分支的提交,逐个 “重新应用” 到目标分支的最新提交之后,相当于 “搬家” 提交历史。

简单说,这关的核心是 “变基让提交历史更线性”:通过 git rebasebugFix 的提交 “嫁接” 到 main 最新提交后,掌握 Git 中整理分支历史的关键操作 。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇