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代理如何解决前端跨域问题详析
Apr 02 Servers
nginx+lua单机上万并发的实现
May 31 Servers
Apache POI的基本使用详解
Nov 07 Servers
详解nginx location指令
Jan 18 Servers
Win10 Anaconda安装python-pcl
Apr 29 Servers
centos7安装mysql5.7经验记录
May 02 Servers
配置nginx负载均衡
May 06 Servers
Nginx的gzip相关介绍
May 11 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
May 30 Servers
nginx设置资源请求目录的方式详解
May 30 Servers
Nginx本地配置SSL访问的实例教程
May 30 Servers
Docker容器harbor私有仓库部署和管理
Aug 05 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
Zerg兵种介绍
2020/03/14 星际争霸
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
第四节--构造函数和析构函数
2006/11/16 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
smarty模板数学运算示例
2016/12/11 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
C#怎么让一个窗口居中显示?
2015/10/20 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
运动会广播稿30字
2014/01/21 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
经典团队口号大全
2014/06/21 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
党员剖析材料范文
2014/12/18 职场文书
公司停电通知
2015/04/15 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
幼儿园六一主持词
2015/06/30 职场文书
周末问候语大全
2015/11/10 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL
python中使用redis用法详解
2022/12/24 Redis