本文最后更新于167 天前,其中的信息可能已经过时,如有错误请发送邮件到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 复制多分支的关键提交”,理解如何跨分支复用代码,掌握精准挑选提交的技巧 。






