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了。

 
原文地址:https://www.cnblogs.com/icenter/p/5267699.html