gerrit上提示代码冲突的时候,我们首先会想到rebase下,不行的话就只能解决冲突了,最简单的做法是我的另一篇博客https://www.cnblogs.com/zndxall/p/9140813.html 中的方法,但是有的时候还是会出现问题,报错commit xxxx is a merge but no -m option was given,如下:

或者执行git cherry-pick 4e73b64a5fc251e6ff82aa1db4316bd4ecd389d5 是一样的效果。

出现这个问题,是因为提交的代码之前pull 了其他人的代码并合入了自己本地的代码,产生了一个merge操作以后,又push到代码仓,就会出现这种情况,我们看下他的提交日志:

分3个点解释,标记“1”很明显是一个merge操作,标记“2”是他自己的改动,标记“3”我们看到parent节点有两个,一个merge里有多个父节点,cherry-pick的时候至少要指定一个父节点,可以用-m parent-num来指定,parent-num 默认从1开始,比如上面的两个父节点,

上面一个父节点29b3eb321d8f512616fad12ce40d7ed22d5d4371的parent-num 为1  ,

下面一个父节点43bd1d238829f067547ebd8f372a6ded5732690a的parent-num为2,

那么在cherry-pick的时候,如果选定父节点为第一个的话,

命令为 git cherry-pick 4e73b64a5fc251e6ff82aa1db4316bd4ecd389d5 -m 1

结果如下:

(备注:如果这里显示失败的话,如果没有失败的话,不用关心这一步,如图:

是因为你cherry-pick了两次,所以需要取消上次的cherry-pick操作,有多种方式,一种是回退到比较老的节点,然后pull最新代码,一种是基于目标分支重新建一个分支专门用来做cherry-pick)

接着再执行git status ,会提示冲突文件,如下:

修改冲突文件后,执行git add . (即add 所有修改),然后git commit -s 写评论,然后git push origin HEAD:refs/for/$branch提交入库即可 ($branch为你的当前工作分支)。

最新文章

  1. 文件操作之FileOpenPicker、FileSavePicker和FolderPicker
  2. 终于看完<LEARNING SQL>第二版,立此存照
  3. 有了iscsi存储怎么让主机识别以及使用创建lvm
  4. Monkey之环境搭建完全版
  5. C++混合编程之idlcpp教程Lua篇(3)
  6. 内存中 OLTP - 常见的工作负荷模式和迁移注意事项(一)
  7. IOS 加载Xib 后 如何 动态修改xib中的控件frame
  8. python :列表 字典 集合 类 ----局部变量可以改全局变量
  9. NodeJS学习之网络操作
  10. 从零一起学Spring Boot之LayIM项目长成记(五)websocket
  11. (译)Web是如何工作的(2):客户端-服务器模型,以及Web应用程序的结构
  12. 使用socket.io client 开发时兼容IE低版本的办法
  13. linux普通用户使用1024以下的端口(80)
  14. Direct2D教程III——几何(Geometry)对象
  15. Zookeeper学习记录(二):使用以及配置
  16. [Swift实际操作]七、常见概念-(8)日历Calendar和时区TimerZone
  17. 通过ifrmae异步下载文档
  18. 关于bootstrap-datetimepicker.js不支持IE8的解决办法
  19. dda的fpga实现(转载)
  20. 计算机网络概述4_性能指标之时延,时延带宽积,往返时间RTT,利用率

热门文章

  1. nginx负载均衡(反向代理)
  2. day_5.21 py 高级编程
  3. git rebase 操作撤销
  4. 7个简单的Excel技巧,需要的赶紧get起来吧
  5. triangular distribution
  6. GIAC2018全球互联网架构大会深圳站盛况回顾,定格精彩瞬间!
  7. DHCP协议和PXE
  8. 树和二叉树->遍历
  9. SQL join的介绍
  10. MIPS 指令集开源了