>> >> >>Indexer<< << << <<<<<< Idx >>>>>>
Matched: 0
cherry-pick
M: 2025-12-31 - ljf12825

git cherry-pick的作用:把某个分支上的一个或多个提交(commit),复制到当前分支上
它不会合并整个分支,只是“挑选”你需要的那几颗“樱桃”(commit)

比方说:

  • feature分支上修了一个bug
  • 但是main分支现在也需要这个修复
  • 不想整个feature分支都合并过去(里面有很多未完成的功能)
  • 可以用
git checkout main
git cherry-pick <commit-hash>

这样只把那次修复搬过来

基本用法

挑选单个提交

git cherry-pick <commit-hash>

挑选多个提交

git cherry-pick <hash1> <hash2> <hash3>

挑选一段提交(连续的)

git cherry-pick <hashA>^..<hashB>

注意^,表示包含<hashA>本身

常见选项

  • -x 在commit message里自动加一句"cherry picked form commit …",方便追踪
git cherry-pick -x <hash>
  • -e 编辑提交说明

  • n/ --no-commit 应用更改但不提交,允许修改后再git commit

  • -m 用于cherry-pick合并提交(merge commit),要指定保留哪个parent

可能遇到的问题

冲突
如果cherry-pick的提交和当前分支代码冲突,会进入冲突解决状态

git status # 查看冲突文件
# 手动修改
git add <文件>
git cherry-pick --coutinue

如果不想继续

git cherry-pick --abort