写在前面
git是作为程序员必备的技能之一,在日常的工作中,git带来的帮助是巨大的,在我们日常的开发中,有一个常见的需求:将代码从一个分支转移到另一个分支.
应用场景
在一个分支中提交的部分代码,需要合并到另一个分支
还有一个常见的场景是,将一个分支的所有代码合并到另一个分支,这时候使用git merge就能轻松解决。
在我们只需要合并部分代码的时候,就需要采用cherry-pick
如何使用?
-
场景:我在
feature分支提交了一个commit,这个时候我想把本次的commit合并到release分支。 -
查看
commitHash
// 在feature分支commit之后,终端输入git log,查看本地提交的commitHash
git log
下图中框起来的部分,就是我们需要的commitHash

- 切换到
release分支
git checkout release
- 将这个
commit合并到release分支
git cherry-pick <commitHash>
// 比如上图中的commitHash为86601fdc89148ce7719bc5e20ad072b47284ab5b
// 即 git cherry-pick 86601fdc89148ce7719bc5e20ad072b47284ab5b
合并多个提交
- 将A、B两个提交都合并
git cherry-pick <commitHashA> <commitHashB>
- 合并A-B的提交(不包含A)
git cherry-pick A..B
- 合并A-B的提交(包含A)
git cherry-pick A^..B