TECH NOTES / 开发工具

Git cherry-pick 简单用法

原笔记 2022-09-16 · 整理于 2026-10-05

想把一个分支上的某个提交应用到另一个分支,可以使用 git cherry-pick。它处理的是选定提交带来的变更,适合只需要其中一项修复的场景。

1. 切换到目标分支

下面假设修复已经在 dev 中,希望把它应用到 master。先确认工作区状态,再切换分支:

bash
git status
git switch master
git log --oneline dev

2. 应用指定提交

用实际提交 ID 替换示例中的 COMMIT_SHA:

bash
git cherry-pick COMMIT_SHA

默认情况下会在目标分支产生一个新提交,所以它的 ID 通常不同于原提交。检查差异、运行项目必要的检查后,再推送:

bash
git show --stat HEAD
git push

3. 遇到冲突怎么办

先用 git status 找到冲突文件,编辑并确认最终内容,然后暂存已解决的文件:

bash
git add path/to/resolved-file
git cherry-pick --continue

如果决定取消当前这次操作:

bash
git cherry-pick --abort

4. 后续合并是否必须 rebase

不必须。原笔记里“cherry-pick 后再次 merge 必须先 rebase”的说法过于绝对,已经改正。后续合并是否冲突取决于分支历史和具体变更,不能仅凭使用过 cherry-pick 就要求重写分支历史。

如果使用 GitLab,也可以在提交页面找到 Cherry-pick 操作,选择目标分支:

GitLab 提交页面的 Cherry-pick 入口

参考:Git cherry-pick 官方手册。

文章配图