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 01 Servers
利用Nginx代理如何解决前端跨域问题详析
Apr 02 Servers
nginx实现动静分离的方法示例
Nov 07 Servers
Apache POI的基本使用详解
Nov 07 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 Servers
Linux下使用C语言代码搭建一个简单的HTTP服务器
Apr 13 Servers
Nginx反向代理、重定向
Apr 13 Servers
Nginx本地配置SSL访问的实例教程
May 30 Servers
超越Nginx的Web服务器caddy优雅用法
Jun 21 Servers
nginx代理实现静态资源访问的示例代码
Jul 07 Servers
windows10 家庭版下FTP服务器搭建教程
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
一个odbc连mssql分页的类
2006/10/09 PHP
10条PHP编程习惯助你找工作
2008/09/29 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php 可变函数使用小结
2018/06/12 PHP
php判断目录存在的简单方法
2019/09/26 PHP
js中的布尔运算符使用介绍
2013/11/20 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
django多种支付、并发订单处理实例代码
2019/12/13 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
pytorch forward两个参数实例
2020/01/17 Python
python小白学习包管理器pip安装
2020/06/09 Python
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
个人委托书范本汇总
2014/10/01 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
运动员入场词
2015/07/18 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书