git | 一个可以提高开发效率的命令:cherry-pick

简介: git | 一个可以提高开发效率的命令:cherry-pick

各位码农朋友们一定有碰到过这样的情况:在develop分支上辛辛苦苦撸了一通代码后开发出功能模块A,B,C,这时老板过来说,年青人,我们现在先上线功能模块A,B。你一定心里一万只草泥马奔腾而过,但为了混口饭吃必须得按老板的意思办事啊。


怎么办?一个办法就是,重新建一个分支,然后再把功能模块C回退,留下功能模块A,B。这种做法不是不行,但是有更好的办法,那就是git所提供的cherry-pick功能。


cherry-pick类似于一个定制化的merge,它可以把其它分支上的commit一个个摘下来,合并到当前分支。


废话不多说,直接上实例。


比如我现在有个文件a.c,我在develop分支完成了三个功能模块:feature A,feature B,feature C。如下图:


image.png


现在,坑爹的老板只要feature A,feature B,我们现在用cherry-pick命令直接把feature A,feature B的提交合并到master分支里,如下操作:


image.png


可以看到,功能模块feature A,feature B已经被合并到master分支里。请注意,合并到master分支里的提交哈希值发生了改变,与原来的不同。


可以看出,cherry-pick命令使用方法很简单,即:


git cherry-pick commitID


刚刚是一个个提交cherry-pick到master分支,但如果有100个commit要合并到master分支呢?总不能这样一个个操作吧?git一样帮你想到了,它提供了一个区间操作方法。具体来讲是这样的:


git cherry-pick commit1..commit100


但是要注意,这是一个左开右闭的操作,也就是说,commit1不会被合并到master分支,而commit100则会。这样的话上面的需求可以如下操作来实现:


image.png


注意:上面讲到cherry-pick命令每拣选一个commit就会提交一次生成一个新的commit id。 如果我们想让每个commit 拣选后暂缓提交,等到所有commit都拣选完成后,自己手动commit,应该怎么办呢?答案是用-n 选项:


image.png



怎样,是不是很简单?学会了cherry-pick命令妈妈再也不用担心老板时不时的头脑发热了。快扫描下方二维码和良许一起学习更多git神操作!

目录
相关文章
|
7天前
|
缓存 数据可视化 网络安全
Git命令大全
Git命令大全
40 1
|
11天前
|
开发工具 git
Git教程:深入了解删除分支的命令
【4月更文挑战第3天】
36 0
Git教程:深入了解删除分支的命令
|
29天前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux git命令使用教程
【Shell 命令集合 文件管理】Linux git命令使用教程
33 0
|
29天前
|
开发工具 git
git常用命令整理
git常用命令整理
13 0
|
17天前
|
开发工具 git 开发者
Git常用命令大全:让你轻松驾驭版本控制
Git命令速查:`git init`新建仓库,`git clone`克隆,`git add`入暂存区,`git commit -m`提交,`git status`查看状态,`git log`查看历史,`git branch`创建分支,`git checkout`切换,`git merge`合并,`git pull`拉取更新,`git push`推送,`git remote -v`查看远程,`git checkout --`撤销本地修改,`git reset HEAD`取消暂存,`git reset --hard`回退版本。掌握这些,提升代码管理效率!
16 0
|
24天前
|
算法 开发工具 git
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
90 0
|
28天前
|
Shell Linux 开发工具
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
14 0
|
1月前
|
开发工具 git
git命令使用大全
git命令使用大全
20 1
|
1月前
|
开发工具 git
|
1月前
|
开发工具 git
Git命令大全:从基础到高级应用
Git命令大全:从基础到高级应用