git cherry-pick合并其它分支的某次提交(commits)到当前分支

250 阅读1分钟

git cherry-pick 可以选择某一个分支中的一个或几个commit(s)来进行操作。

例如,假设我们有个稳定版本的分支,叫v2.0.0,另外还有个开发版本的分支v3.0.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0.0中的功能到v2.0.0中,这里就可以使用cherry-pick了,其实也就是对已经存在的commit 进行再次提交。

合并操作

git checkout v2.0.0 #切换到目标分支
git cherry-pick ff571ed7 #ff571ed7 是v3.0.0分支的某次commit的hash(可以使用git log查看)
# 一次合并多个commit
git cherry-pick ff571ed7 ff571ed8
# 如果多次commit是连续的
git cherry-pick ff571ed7..ff571ed8 # 不包括ff571ed7
git cherry-pick ff571ed7^..ff571ed8 # 包括ff571ed7

成功的提示

image.png

注意事项

如果有冲突发生,要先解决冲突,然后再运行git cherry-pick --continue就可以继续完成;

其它操作

#1、发生冲突后放弃合并,回到操作之前的状态
git cherry-pick --abort

#2、发生冲突后,退出cherry-pick 但不回到操作之前的状态
git cherry-pick --quit