Git cherry-pick

目录

一般来说,掌握了git的commit,branch,merge几个命令就足以应付90%的工作场景了,但是有时候我们也需要处理稍微复杂一点的工作场景,比如整理提交记录。

什么时候使用Cherry-pick

Cherry pick 直译成中文就是采樱桃,樱桃有好有坏,挑选樱桃的过程就形象的类比了我们应用该命令挑选提交(Commit)的过程。
一般来说,利用git进行多人协作的网站开发项目都有不止一个分支,其中每一个分支对应于网站部署的一个架构。在多分支环境下,如果我们想要将一个或者一些在其他分支下提交(Commit)复制到当前分支所在的位置(HEAD)的话,cherry-pick 是最直接,最方便的办法了。

一个例子

git cherry-pick命令图示,图片来源:http://learngitbranching.js.org

如上图所示,如果我们想要将side分支上C2与C4分支复制到当前分支master所在位置的话,git cherry-pick C2 C4 能帮助我们吧side分支上的C2与C4提交以此应用到当前分支中,产生C2’与C4’提交,其中,这两个提交的内容分别和C2与C4对应,不过hash值会重新计算,不再与原hash值一样。

在这里我也要推荐一个学习git操作的好网站 learngitbranching.js.org,也就是上面截图的来源。虽然网站名字叫做learn git branching,但是教学内容几乎涵盖git的方方面面。最重要的是,与看教程不同的是,该网站有交互式的git log graph,是git入门的不二之选。