git cherry-pick

Posted 小兵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git cherry-pick相关的知识,希望对你有一定的参考价值。

git cherry-pick

使用场景:

本地有多个分支,local_branch_A, local_branch_B, ...

在本地分支上local_branch_A 上做了 commit,想在此提交到 local_branch_B 上,

这时,如果你不怕出错,不嫌麻烦,当然可以在local_branch_B上把上次提交的代码在重写一遍提交。

但是git提供了更好的解决办法:git cherry-pick <commit_id>

具体操作过程:

首先是在local_branch_A上做了提交,有了提交_id,

然后通过git log 查询到提交的id 病记录下来,

然后切换到 local_branch_B上,

使用 git cherry-pick <commit_id> 

命令执行完查看一下状态,

这事如果没有问题,没有冲突,就等于是已经在loca_branch_B上执行了commit,

这时在local_branch_B上就可以直接push了。

代码示例:

假设现在在 local_branch_A 上,

git branch -vv

git status

git add <some_file>

git commit -m "comments"

git log

<commit_id>  //得到commit_id并记录

git checkout <local_branch_B>

git branch -vv

git status

git cherry-pick <commit_id>

如果没有冲突,就是已经做了commit。

如果有冲突, 需要先解决冲突,可以手动merge,也可以使用mergetool

解决完冲突后,在执行

git add <merged_file>

git commit -m "comments, use cherry-pcik produce some conflicts, merge some file"

 

全部执行完毕就可以 push了。

 

 

以上是关于git cherry-pick的主要内容,如果未能解决你的问题,请参考以下文章

git执行cherry-pick时修改提交信息

git cherry-pick

git cherry-pick

Git cherry-pick

git --- cherry-pick用法

GitGit 分支管理 ( 使用 git cherry-pick 命令提取提交记录应用于当前分支 | 创建新分支应用某个提交 | git cherry-pick 冲突处理 )