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 相关文章推荐
windows下快速安装nginx并配置开机自启动的方法
May 11 Servers
Apache Pulsar集群搭建部署详细过程
Feb 12 Servers
Apache Linkis 中间件架构及快速安装步骤
Mar 16 Servers
nginx共享内存的机制详解
Mar 21 Servers
配置Kubernetes外网访问集群
Mar 31 Servers
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
Apr 02 Servers
Nginx 安装SSL证书完成HTTPS部署
Apr 28 Servers
利用Apache Common将java对象池化的问题
Jun 16 Servers
vscode远程免密登入Linux服务器的配置方法
Jun 28 Servers
Linux中sftp常用命令整理
Jun 28 Servers
VMware虚拟机安装 Windows Server 2022的详细图文教程
Sep 23 Servers
源码安装apache脚本部署过程详解
Sep 23 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
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
js省市区级联查询(插件版&amp;无插件版)
2017/03/21 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python编程中类与类的关系详解
2019/08/08 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
python实现简单颜色识别程序
2020/02/19 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
建筑工程技术专业求职信
2014/07/16 职场文书
庆祝三八妇女节标语
2014/10/09 职场文书
六查六看心得体会
2014/10/14 职场文书
2015年司机工作总结
2015/04/23 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书