Git 的 Cherry-Pick
创始人
2025-05-31 03:35:08

1、什么是 Cherry-Pick

cherry-pick 是 Git 版本控制工具中的一个命令,和 commit 、pull 一样,它只是一个命令。

cherry-pick 和它的名称一样,精心挑选,挑选一个我们需要的 commit 进行操作。它可以用于将在其他分支上的 commit 修改,移植到当前的分支。

一个很常见的场景,就是想在某个稳定版本上,添加一个刚开发完成的版本中的功能。就可以使用 Cherry-pick 命令,将这个功能相关的 commit 提取出来,合入稳定版本的分支上。

2、如何使用 Cherry-Pick

Cherry-Pick 使用起来非常的简单:

git cherry-pick 

这里操作的就是需要 cherry-pick 的 commit-id ,一般使用 Git 管理工具什么的,都可以很方便的查看到,否者的话,可以使用 git log 命令,查找我们需要的 commit-id。

当执行完 cherry-pick 之后,将会自动生成一个新的 commit 进行提交,也就是会有一个新的 commit ID。

如果顺利的话,就可以正常提交了。如果遇到冲突,使用 git diff 解决冲突即可,工作中,不推荐手工解决冲突,最好还是使用一些 diff 工具来处理,毕竟手工处理容易出错。

3、Cherry-Pick 的高级用法

前面介绍的最简单的 git cherry-pick 只是最简单也是最常用的方法,正常来说,我们直接使用最简单的命令就可以了,如果 commit 多了,无非就是多重复执行几次而已,但是 cherry-pick 还有一些高级点的用法,这里了解一下。

git cherry-pick -x 

增加 -x 参数,表示保留原提交的作者信息进行提交。

在 Git 1.7.2 版本开始,新增了支持批量 cherry-pick ,就是可以一次将一个连续的时间序列内的 commit ,设定一个开始和结束的 commit ,进行 cherry-pick 操作。

git cherry_pick 

可以看到,它的范围就是 start-commit-id 到 end-commit-id 之间所有的 commit,但是它这是一个 (左开,右闭] 的区间,也就是说,它将不会包含 start-commit-id 的 commit。

而如果想要包含 start-commit-id 的话,就需要使用 ^ 标记一下,就会变成一个 [左闭,右闭] 的区间,具体命令如下。

git cherry-pick ^...

举个例子来说明一下:

使用 git log —pretty=oneline 来查看当前分支最近的提交,注意 git 命令中,对于 commit-id 的操作,都只需要使用前五位就可以了。

git cherry-pick 371c2…971209 // (2,5]
git cherry-pick 371c2^…971209 // [2,5]

3、注意事项

无论是对单个 commit 进行 cherry-pick ,还是批量处理,注意一定要根据时间线,依照 commit 的先后顺序来处理,否者会有意想不到的问题。

相关内容

热门资讯

拉布布上榜俄罗斯年度热词 【#拉布布上榜俄罗斯年度热词#】#俄罗斯年度热词有拉布布人工智能#临近岁末,俄罗斯多家团体评选出本国...
“四川造”全球首款6吨级倾转旋...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:封面新闻) ...
英国想当“AI超级大国”,结果...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:观察者网) ...
中超控股:公司应补缴税款及滞纳... 中超控股公告,经自查,公司应补缴税款及滞纳金合计828.81万元,其中补缴税款572.36万元,滞纳...
焦点访谈|“心想”变“事成”!... 来源:央视网央视网消息(焦点访谈):我们中国人有一句蕴含着祝福的成语,叫“心想事成”,如今,心想事成...