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 502 Bad Gateway错误原因及解决方案
Mar 31 Servers
Nginx本地目录映射实现代码实例
Mar 31 Servers
如何在centos上使用yum安装rabbitmq-server
Mar 31 Servers
nginx配置文件使用环境变量的操作方法
Jun 02 Servers
Linux中Nginx的防盗链和优化的实现代码
Jun 20 Servers
使用goaccess分析nginx日志的详细方法
Jul 09 Servers
Nginx实现负载均衡的项目实践
Mar 18 Servers
阿里云k8s服务升级时502错误 springboot项目应用
Apr 09 Servers
Windows Server 2019 安装DHCP服务及相关配置
Apr 28 Servers
使用Apache Camel表达REST服务的方法
Jun 10 Servers
git中cherry-pick命令的使用教程
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
用PHP调用数据库的存贮过程!
2006/10/09 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
php二维数组转成字符串示例
2014/02/17 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
JS trim去空格的最佳实践
2011/10/30 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
javascript中this的四种用法
2015/05/11 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
纯jQuery实现前端分页功能
2017/03/23 jQuery
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
python实现自动发送报警监控邮件
2018/06/21 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
Python使用sax模块解析XML文件示例
2019/04/04 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
幼儿园保育员辞职信
2014/01/12 职场文书
合伙购房协议样本
2014/10/06 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android