1. 应用场景

在A分支上提交了一个commit,B分支也需要提交这个commit代码,避免人工复制代码,可以使用git命令行操作。

2. 基本用法(实例讲解)

比如,我们的仓库中有 master 和 pre-master 两个分支,现在只想将 f 提交到 master分支。
在这里插入图片描述
现在将 f 提交到master分支,其实这个f字母是打的比方,正常情况下是我们提交的commit版本号e32bb848
在这里插入图片描述

git checkout master  //切换到要合并的目标分支上
git cherry-pick xxxx(对应commit版本号)   //选择一个commit版本号,合并进当前分支
git push  //推送到目标分支远程仓库

上面操作完成后,代码库就变成了下面的样子
master分支末尾增加了提交的 f

在这里插入图片描述

3. 支持转移多个提交

在这里插入图片描述

想将 e,f 都提交到master分支

git cherry-pick xxxx xxxxx

上面命令将 e,f 提交到master分支,并生成两个对应的新提交commit版本号。

======================= 2023/4/8 =======================

注意:

  1. 当执行完 cherry-pick 之后,将会自动生成一个新的 commit 进行提交,也就是会有一个新的 commit ID。
  2. 无论是对单个 commit 进行 cherry-pick ,还是批量处理,注意一定要根据时间线,依照 commit 的先后顺序来处理,否者会有意想不到的问题。

4. Cherry-Pick 的高级用法

git cherry-pick -x <commit_id>  //增加 -x 参数,表示保留原提交的作者信息进行提交。然后在生成的新提交信息中增加一行记录,表明这个新提交是从之前的那一个提交衍生出来的

可参考:
git只合并某一个分支的某个commit
git合并指定commit——git合并某个特定的提交commit到指定的分支上

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐