掘金文章归档 · 第 25 篇 Git / 工程化 系列 4/8 Git

git cherry-pick 使用教程

分支无法合并时,把指定提交"摘"到另一个分支

原文作者:随意_(掘金) | juejin.cn/post/7201363501569835067 | 发布于 2023-02-18 | 阅读 532 · 约 1 分钟

0为何使用 git cherry-pick?使用场景

实际开发项目中会涉及到多个分支,如 project1 分支(项目 1 分支)、project2 分支(项目 2 分支)等等,多个分支由于版本问题、时间问题等等原因,项目分支代码无法合并(如果能合并,直接使用 merge 了)。

但是此时 project1 项目中有某些提交,在 project2 项目中也要用到:假设 project1 项目中 commit1、commit2 两次提交,project2 项目也需要使用这部分代码,而分支无法合并,这时就需要使用 cherry-pick(俗称"摘樱桃")。

📌 一句话:cherry-pick 让你把某个分支上的特定提交,精准复制到另一个分支上,而不是整条分支合并。

1使用方法

步骤 1:找到 project1 项目中 commit1、commit2 的 commit-id

git log

不使用 VSCode,用 git log 也可以查询到。

步骤 2:切换到 project2 分支上,执行

git cherry-pick commit-id1 commit-id2

(commit-id1 / commit-id2 换成项目中的具体 id)

步骤 3:确认提交结果

git cherry-pick 命令会在 project2 分支形成一次提交:

情况结果处理
无冲突自动提交成功无需额外操作
有冲突cherry-pick 暂停,等待处理解决冲突 → git addgit cherry-pick --continue
✅ 总结:分支无法合并但有部分提交需要共用时,cherry-pick 是精准移植提交的利器。