本文最后更新于47 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
1. 初始状态分析
- 当前分支:
main
分支(main*
表示当前所在分支),指向c1
。 - 其他分支:
bugFix
分支:c2 → c3
(修复 bug 的提交)side
分支:c4 → c5
(辅助功能提交)another
分支:c6 → c7
(其他功能提交)
- 目标结构:
main
分支需依次挑选bugFix
的c3
、side
的c5
、another
的c7
提交;- 最终形成
c0 → c1 → c2' → c4' → c6' → c7'
的线性历史('
表示cherry-pick
生成的新提交)。
2. git cherry-pick
核心逻辑
- 作用:复制指定提交到当前分支,生成新提交(哈希不同,但内容一致)。
- 语法:
git cherry-pick <提交哈希>
,可连续挑选多个提交。
3. 通关步骤(分阶段执行)
阶段 1:挑选 bugFix
分支的 c3
提交,挑选 side
分支的 c5
提交,挑选 side
分支的 c5
提交
当前在 main
分支(c1
),需要复制 bugFix
分支的 c3
提交,需要复制side
分支的 c4
提交,side
分支的 c7
提交:
bash
git cherry-pick c3 c4 c7
- 效果:
main
分支新增提交c3,c4,c7
- 结构变为:
c0 → c1 → c3' → c5' → c7'
(main*
指向c7'
)。
简单说,这关的核心是 “使用 git cherry-pick
复制多分支的关键提交”,理解如何跨分支复用代码,掌握精准挑选提交的技巧 。