git查漏补缺之cherry-pick
创始人
2025-06-01 05:49:16

Start

  • 昨天的博客学习了 git 中的 stash 命令,今天再来学习一个命令:cherry-pick

1. cherry-pick介绍

我们正常的工作场景中,合并分支中的代码,往往都是通过 merge 命令达到效果。

但是某些情况,使用 cherry-pick 往往会非常方便。

cherry-pick 英译:精选/挑选

我遇到的使用场景:

情况一:

但是我最近有遇到过这么一个情况,我自己commit提交的几个分支代码,被别人的代码覆盖了。虽然代码被覆盖了,但是代码提交的commit还是存在的,这个时候就可以使用 cherry-pick 将我自己的部分commit 合并过来。

情况二:

我在主干 master 分支上,突然想合并某个功能分支的某一个 commit,全量的 merge 并不符合我的要求,此时可以尝试使用 cherry-pick

2. 具体使用

首先我又一个A分支,A分支上有几个提交,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-98PNZGk9-1679407247760)(/Users/tomato/Library/Application Support/typora-user-images/image-20230321214248454.png)]

A分支:通过 `git log --oneline` 查看所有commit记录初次提交->1->2->3

现在我切换到 master 分支上,我想拿到A分支上提交记录为 2 的 commit 的内容。

在这里插入图片描述

可以看到上诉的截图,我们成功将A分支上提交记录为 2 的 commit 的内容拿了过来。

如果想拿多个 commit 该如何操作?

git cherry-pick commitA commitB commitC

如果想获取一个区间的commit

git cherry-pick commitA...commitB
# 不包含commitA,包含commitBgit cherry-pick commitA^...commitB
# 包含commitA,包含commitB

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

3. cherry-pick总结

总结一下今天学习到的内容:

  • cherry-pick 挑选的意思。
  • 我们可以挑选一部分我们需要的 commit 合并到我们的当前分支,我们依托 commit的id 即可。

相关内容

热门资讯

平安安享灵活配置混合A净值下跌... 平安安享灵活配置混合型证券投资基金(简称:平安安享灵活配置混合A,代码002282)公布12月29日...
长城行业轮动混合A净值上涨1.... 长城行业轮动灵活配置混合型证券投资基金(简称:长城行业轮动混合A,代码002296)公布12月29日...
创金合信沪深300增强A净值下... 创金合信沪深300指数增强型发起式证券投资基金(简称:创金合信沪深300增强A,代码002310)公...
银华稳利灵活配置混合C净值下跌... 银华稳利灵活配置混合型证券投资基金(简称:银华稳利灵活配置混合C,代码002323)公布12月29日...
富国价值优势混合A净值下跌0.... 富国价值优势混合型证券投资基金(简称:富国价值优势混合A,代码002340)公布12月29日最新净值...