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的主要内容,如果未能解决你的问题,请参考以下文章
GitGit 分支管理 ( 使用 git cherry-pick 命令提取提交记录应用于当前分支 | 创建新分支应用某个提交 | git cherry-pick 冲突处理 )