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限制并发连接请求数的方法
Apr 01 Servers
Nginx进程调度问题详解
Sep 25 Servers
Nginx图片服务器配置之后图片访问404的问题解决
Mar 21 Servers
Nginx设置HTTPS的方法步骤 443证书配置方法
Mar 21 Servers
CentOS7和8下安装Maven3.8.4
Apr 07 Servers
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
Apr 07 Servers
docker-compose部署Yapi的方法
Apr 08 Servers
Nginx反向代理、重定向
Apr 13 Servers
Windows Server 2019 配置远程控制以及管理方法
Apr 28 Servers
nginx静态资源的服务器配置方法
Jul 07 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 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
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
php使用glob函数快速查询指定目录文件的方法
2014/11/15 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
Smarty3配置及入门语法
2017/02/22 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
经验几则 推荐
2006/09/05 Javascript
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
python+django快速实现文件上传
2016/10/24 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Python笔记之工厂模式
2019/11/20 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
2015年妇委会工作总结
2015/05/22 职场文书
教师节表彰会主持词
2015/07/06 职场文书