GitHub

cherry-pick单个提交:只搬修复,不把整个分支合并进来

资料核对与更新:2026-10-27 · 阅读约2分钟

另一个分支只有一处修复需要上线时,可以选择性应用提交。本文说明操作前检查、冲突处理与完成后的验证。

Git提交与分支工作流示意
Git提交与分支工作流示意;作者:TheresNoTime;许可:CC BY-SA 4.0。主题示意配图,非本文操作截图。 图片来源 · 许可说明

功能分支还没有开发完,却包含一个主分支急需的修复,此时可以考虑 cherry-pick。它把指定提交的改动应用到当前分支,通常产生新的提交,并不是移动原来的那条历史。

先检查提交依赖

保存工作区修改,再查看目标提交的差异和前后关系。如果修复依赖前一个提交新增的接口,只搬最后一条可能无法运行。先切到目标分支,从最新基线创建修复分支,确认当前分支正确后再执行 git cherry-pick 加提交编号。

冲突时不要硬选一边

运行 git status 查看冲突文件,理解目标分支现有实现,再编辑冲突区域。解决后把指定文件加入暂存区,执行 git cherry-pick --continue。决定放弃本轮操作时,可用 --abort 回到操作前的状态;先确认没有需要单独保存的临时编辑。

验证实际行为

检查最终差异是否只包含预期修复,运行受影响功能的检查,再提交拉取请求。跨分支回移修复时,可按团队规则保留原提交来源说明,帮助后来的人追踪关系。

不要把 cherry-pick 当作长期同步分支的工具。大量相互依赖的提交更适合重新设计合并策略。合并提交还涉及父提交选择,未理解之前不要随意加参数尝试,以免带入与预期不同的改动。

参考资料

资料核对:2026年10月27日。本文为文档综合与操作建议,未宣称完成本站实测。

Git cherry-pick 手册

Git switch 手册

本文新增价值
围绕cherry-pick单个提交整理适用边界、逐步操作与验收方法,区分错误现象和真正原因,避免只给出配置值而缺少验证步骤。