git cherry-pick 摘樱桃

378 阅读2分钟

前言

有一次看着工作群里的同事在聊天,架构师冒出了一句,“让我们摘樱桃吧...”,我当时就地铁老人脸???,他是不是和家里人聊天,串场了。后来才知道这是一个git工作命令的简称,是我孤陋寡闻啦 ,那开始吧,简单了解一下什么是摘樱桃~

git cherry-pick

简单来说,就是将另一个分支的提交记录,合并到当前分支上。使用方式如下:

git cherry-pick [commitHash] 

commitHash是要合并分支如feature的某一次提交记录,先切换到当前分支master,执行此命令,执行完成后,会将feature分支这次提交的代码变动合并到master上。(感觉这个需求还真的挺常见的呢)

上面的例子只是转移一次提交记录,那可以一次合并多条吗,也是可以的!

git cherry-pick [commitHash1] [commitHash2]

这次会将commitHash1与commitHash2两条提交都合并到当前分支上,那如果commit很多,也要一个一个都列出来吗,答案是“No”,也是有办法的

git cherry-pick [commitHash1]^..[commitHash10]

这次执行会将包括commitHash1到10的所有提交记录都合并到当前分支上,效率是不是提高了呢?

如果在合并过程中,代码冲突了怎么办呀?git cherry-pick会停止执行,等待用户解决完冲突,再次运行git cherry-pick --continue ,就可以继续执行了。后面也可以跟其他参入,比如--abort,表示代码冲突我不想再继续合并了,要退回到原来的样子,再比如--quit,表示直接退出git cherry-pick,回不到操作前的样子啦。

git cherry-pick --continue
git cherry-pick --abort
git cherry-pick --quit

结尾

git cherry-pick命令其实很强大,还可以合并远程仓库的代码分支,我觉得是非常有用的,本文参考了阮一峰的博客文章,深入阅读点击这里,git cherry-pick教程