项目版本管理使用git,在实际工作当中经常会遇到计划赶不上变化,比如某几个改动要提前上线,或者某几个改动这次不发布。如果是时间间隔短,改动量小以及个人记忆强大的基础上没什么事,弄个个新分支把需要的弄出来,或者屏蔽掉。但是如果上面三个条件有一个不满足,其实都特别难受。
我们能不能把我们需要修改的commit也提交到别的分支,这样我们只需要根据我们改动的提交,而不是一个文件一个文件的去修改。
实际上是有的,这个操作叫做cherry-pick
(1)cherry-pick 命令
这里如果你是忠实的命令行操作大牛,这里我找到一个git cherry-pick的命令行教程(实际上直接通过搜索工具 搜索cherry-pick,一大把对应的教程)
git cherry-pick 教程
(2)可视化工具
我平常用得最多的就是idea自带的git工具,操作方式也很直观简单,
第一步:就是你现在你切换代码分支到想要被提交代码的分支上。
第二步:在git提交记录中找到目标commit提交的那个分支,点击获取该分支commit历史记录
第三步:找到你想要的那个commit,右键cherry-pick
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210715111254183.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ZlaUNoYW5nV3VSYW8=,size_16,color_FFFFFF,t_70)
同样其他可视化工具比如sourcetree等,这里说明一下的是 GitExtensions这个工具,如果你使用的是中文版,那它的cherry-git对应的中文名叫做“撷取此提交”
微信公众号:我是坑货
(3)gitlab
内部版本管理大多数都使用的是gitlab,实际上gitlab的网页上也有cherry-git功能
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210715112517819.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ZlaUNoYW5nV3VSYW8=,size_16,color_FFFFFF,t_70)
只不过藏的有点深,首先是创建一个new merge request,然后去对应的commit点击过去,然后在上图的位置找到cherry-pick进行所谓的“优选”
或者“撷取”commit。
微信公众号:我是坑货