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反向代理配置的全过程记录
Jun 22 Servers
使用Nginx搭载rtmp直播服务器的方法
Oct 16 Servers
总结高并发下Nginx性能如何优化
Nov 01 Servers
为Centos安装指定版本的Docker
Apr 01 Servers
教你使用Jenkins集成Harbor自动发布镜像
Apr 03 Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 Servers
docker 制作mysql镜像并自动安装
May 20 Servers
ubuntu下常用apt命令介绍
Jun 05 Servers
永中文档在线转换预览基于nginx配置部署方案
Jun 10 Servers
教你如何用cmd快速登录服务器
Jun 10 Servers
Python安装及建立虚拟环境的完整步骤
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+APACHE实现用户论证的方法
2006/10/09 PHP
PHP中如何判断AJAX提交的数据
2012/02/05 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
探讨PHP调用时间格式的参数详解
2013/06/06 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
web前端开发也需要日志
2010/12/09 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python中int()函数的用法浅析
2017/10/17 Python
tensorflow获取变量维度信息
2018/03/10 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
深入了解Python在HDA中的应用
2019/09/05 Python
python实现飞机大战小游戏
2019/11/08 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
七年级地理教学反思
2014/01/26 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
经理助理岗位职责
2014/03/05 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
护士年终个人总结
2015/02/13 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js