git中cherry-pick命令的使用教程


Posted in Servers onJune 25, 2022

git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0中的功能到v2.0中,这里就可以使用cherry-pick了,其实也就是对已经存在的commit 进行再次提交。

简单用法:

git cherry-pick <commit id>

例如:

$ git checkout v2.0分支
$ git cherry-pick 38361a55 # 这个 38361a55 号码,位于v3.0分支中:

$ git log
commit 38361a55138140827b31b72f8bbfd88b3705d77a
Author: Justin Justin@xxx.com
Date: Sat Dec 10 00:11:44 2016 +0800

1. 如果顺利,就会正常提交。结果:

Finished one cherry-pick.
On branch v2.0分支
Your branch is ahead of 'origin/old_cc' by 3 commits.

2. 如果在cherry-pick 的过程中出现了冲突

Automatic cherry-pick failed.
After resolving the conflicts,mark the corrected paths with 'git add <paths>' or 'git rm <paths>'and commit the result with:
git commit -c 15a2b6c61927e5aed6111de89ad9dafba939a90b

或者:

error: could not apply 0549563... dev
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

就跟普通的冲突一样,手工解决:

2.1 $ git status # 看哪些文件出现冲突

both modified: app/models/MainActivity.java

2.2 $ vim app/models/MainActivity.java # 手动解决它。

2.3 $ git add app/models/MainActivity.java

2.4 git commit -c <新的commit号码>

2.5 再次cherry-pick剩余commit

若提示:

error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit | --abort)"
fatal: cherry-pick failed

则执行对应操作:

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

命令集合:

git cherry-pick <commit id>:单独合并一个提交
git cherry-pick -x <commit id>:同上,不同点:保留原提交者信息。
Git从1.7.2版本开始支持批量cherry-pick,就是一次可以cherry-pick一个区间的commit。
git cherry-pick <start-commit-id>..<end-commit-id>
git cherry-pick <start-commit-id>^..<end-commit-id>

前者表示把<start-commit-id>到<end-commit-id>之间(左开右闭,不包含start-commit-id)的提交cherry-pick到当前分支;
后者有"^"标志的表示把<start-commit-id>到<end-commit-id>之间(闭区间,包含start-commit-id)的提交cherry-pick到当前分支。
其中,<start-commit-id>到<end-commit-id>只需要commit-id的前6位即可,并且<start-commit-id>在时间上必须早于<end-commit-id>
注:以上合并,需要手动push代码。

以上内容总结如下:

1.git checkout master            //此操作需要切换到master分支  

2.git pull

3.git cherry-pick  xxxxxx
 
4.git status 
 
5.编译提交等

到此这篇关于git中cherry-pick命令的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。


Tags in this post...

Servers 相关文章推荐
nginx前后端同域名配置的方法实现
Mar 31 Servers
查看nginx配置文件路径和资源文件路径的方法
Mar 31 Servers
Nginx的反向代理实例详解
Mar 31 Servers
nginx搭建图片服务器的过程详解(root和alias的区别)
Mar 31 Servers
Nginx部署vue项目和配置代理的问题解析
Aug 04 Servers
nginx安装以及配置的详细过程记录
Sep 15 Servers
Linux下使用C语言代码搭建一个简单的HTTP服务器
Apr 13 Servers
阿里云 Windows server 2019 配置FTP
Apr 28 Servers
nginx实现多geoserver服务的负载均衡
May 15 Servers
nginx lua 操作 mysql
May 15 Servers
docker 制作mysql镜像并自动安装
May 20 Servers
Windows server 2012 NTP时间同步的实现
Jun 25 Servers
解决Git推送错误non-fast-forward的方法
Jun 25 #Servers
Win2008系统搭建DHCP服务器
windows server2008 开启端口的实现方法
Windows10安装Apache2.4的方法步骤
Linux下搭建SFTP服务器的命令详解
Jun 25 #Servers
Nginx安装配置详解
win sever 2022如何占用操作主机角色
Jun 25 #Servers
You might like
global.php
2006/12/09 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
2013/06/24 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python多进程并行代码实例
2019/09/30 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
Python ini文件常用操作方法解析
2020/04/26 Python
python IP地址转整数
2020/11/20 Python
python中pyqtgraph知识点总结
2021/01/26 Python
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
优秀部门获奖感言
2014/02/14 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
人事局接收函
2015/01/31 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
研讨会致辞
2015/07/31 职场文书