我们开发的项目往往都是多分支的代码仓库,经常会遇到将一个分支的代码转移到另一个分支的情况。如果遇到只需要将一个提交或某几个提交转移到另一个分支的情况,就可以用我们的cherry-pick
了。
cherry-pick
翻译过来就是挑选樱桃
,顾名思义,就是一个一个挑选的意思。我们可以使用cherry-pick
将指定的commit 提交
应用于其他分支。具体命令如下:
git cherry-pick <commitHash>
这个命令会将指定的提交commitHash
,应用于当前分支(目标分支)。并且会在当前分支产生一个新的commitHash
不一样的提交。
当前,我们也可以直接使用分支名feature
来转移该分支的最新提交。如下代码标识将feature
分支的最近一次提交,转移到当前分支。
git cherry-pick feature
转移多个提交
还有一种情况就是,你在一个错误的分支上一直写呀写呀写,提交了好几个commit
,最后要合并代码的时候发现写到别的分支上了,这时候我们要一次转移多个提交,我们该怎么做呢?
git cherry-pick <HashA> <HashB>
以上命令会将HashA
和HashB
两个提交应用到当前分支,并且在当前分支生成两个对应的新提交。
如果想要转移连续的几个提交,可以使用下面的语法。
git cherry-pick A..B
代码冲突
执行cherry-pick
的过程中,也会有发生代码冲突的情况,这种情况下,cherry-pick
会停下来,需要让我们来决定如何继续操作。
1.--continue
我们将代码冲突解决后,将修改的文件重新加入暂存区(git add .)
,我们使用下面的命令,让cherry-pick
继续执行。
git cherry-pick --continue
2.--abort
如果代码发生冲突后,发现很难解决,需要放弃合并,回到操作前的样子,则可以使用下面的命令:
git cherry-pick --abort
3.--quit
发生代码冲突后,退出cherry-pick
,但是不回到操作前的样子。
git cherry-pick --quitj
结语
以上就是 git cherry-pick 基本用法,但是在工作中基本就够用了,然而cherry-pick
还有一些其他比较高级的用法,感兴趣的小伙伴可以继续深入研究一下。