有的时候,我们在一个分支上提交了几个commit,然后我们会需要提交到其他分支上,一般情况下,我们会采用的merge的方式来合并分支,另外一种方式是只需要其中几个提交时,我们会cherry-pick到分支上,那么当要cherry-pick的几个提交之间有依赖关系要怎么处理呢?

比如,我们在branch_test上修改了三个提交,分别是commit1,commit2,commit3,其中commit1的改动是添加了一个test.txt的文件,commit2是在test.txt文件中写入了"test",commit3是再test.txt中追加了"test11",我们需要将这三个提交cherry-pick到branch_target分支上,很明显,这三个提交是有依赖关系的

commit3  (再将“test11”追加到test.txt)

commit2    (将“test”写入test.txt)

commit1     (创建test.txt)

有的人可能会觉得,既然最后一个提交commit3已经是最终结果了,那么直接cherry-pick这个提交到目的分支上不就可以了吗?其实是不行的,我在gerrit上直接cherry-pick这个提交到branch_target分支,报错失败,有冲突。既然有冲突,那么就解决冲突,我把这个提交使用命令行的方式cherry-pick到本地的branch_target分支上,结果报错是“delete by us :test.txt ”,是因为这个文件在这个分支上并不存在,所以他就报这个错了。

那么要怎么操作这种有关联的提交呢,首先先把commit1 cherry-pick到branch_target上,并把提交合并到branch_target,然后再把commit2 cherry-pick到branch_target上,再把提交合并到branch_target上,最后commit3也是一样的,cherry-pick到branch_target上,然后再合入提交。

cherry-pick多个commitid时的顺序说明的更多相关文章

  1. Javascript动态加载Html元素到页面Dom文档结构时执行顺序的不同

    我们有时会通过ajax动态获取一段Html代码,并且将这段代码通过javascript放到页面的Dom结构中去. 而很多时候通过ajax动态获取的Html代码中也包含javascript代码,有一点需 ...

  2. 滚动ListView时图像顺序混乱

    本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术.本文将为读者讲解滚动ListView时图像顺序混 ...

  3. WM_SIZE后于WM_CREATE消息!!在窗口被创建时的顺序!

    WM_SIZE   procedure WMSize (var Message: TWMSize); message WM_SIZE; 参数说明 wParam: Specifies the type ...

  4. git之rebase、merge和cherry pick的区别(面试常问)

    git flow图例镇楼 merge 这个简单,初学者常用.比如主分支是Dev,最新版本是01.然后小明基于此,搞了个feature 分支A,业务:打酱油.然后在上面多次提交,完成功能迭代开发,如A1 ...

  5. GCC链接时库顺序问题

    GCC或G++在编译链接时,如果命令行中含有库,则要特别注意了.根据<C专家编程>5.3节中的提示,GCC在链接时对命令行时的处理顺序是从左到右.证据是GCC的MAN: -l librar ...

  6. java类加载时执行顺序

    源代码 class HelloA { public HelloA() { System.out.print("A"); } { System.out.print("B&q ...

  7. SQL Server中多表连接时驱动顺序对性能的影响

    本文出处:http://www.cnblogs.com/wy123/p/7106861.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  8. gulp打包js/css时合并成一个文件时的顺序解决

    1.可以使用插进gulp-order. 2.可以这样的写法: return gulp.src(['js/common.js','js/**/*.js']) .pipe(concat('build.js ...

  9. Python异常捕捉try except else finally有return时执行顺序探究

    转载自 https://www.cnblogs.com/JohnABC/p/4065437.html 学习python或者其他有异常控制的编程语 言, 大家很有可能说try except finall ...

随机推荐

  1. Android应用资源分析(老罗链接整理)

    1.Android资源管理框架(Asset Manager)简要介绍和学习计划 2.Android应用程序资源的编译和打包过程分析 3.Android应用程序资源的查找过程分析 https://my. ...

  2. [转]Jsoup(一)Jsoup详解(官方)

    原文地址:http://www.cnblogs.com/zhangyinhua/p/8037599.html 一.Jsoup概述 1.1.简介     jsoup 是一款Java 的HTML解析器,可 ...

  3. <%: Html.DisplayNameFor与 <%: Html.DisplayFor的区别

    DisplayNameForModel只有在model定义了DisplayName时有用,简单说,DisplayNameFor是针对model里的"字段"别名,DisplayNam ...

  4. 嵌入式开发之网络心跳包---阻塞和非阻塞以及是否有必要心跳包heartbeat

    1.1 TCP和UDP的心跳包是用来维持长连接的 心跳包只是用来检测socket的链接状态 2.1 非阻塞情况下TCP 心跳包是否有必要建立心跳包 需要, a.如果说 严格 检测掉线的话 那么不管是不 ...

  5. mysql 存储过程、循环

    CREATE PROCEDURE questionProc() BEGIN declare pgId ); declare pGuid varchar(); -- 定义游标卡尺 declare don ...

  6. redis安装相关下载

    redis-4.0.1.gem下载网址 https://rubygems.org/gems/redis/ rubyinstaller-2.3.3-x64.exe下载网址 http://dl.bintr ...

  7. 【python】装饰器详解推荐

    复杂道理浅中来,见过的解释最清楚的一篇文章: https://blog.csdn.net/xiangxianghehe/article/details/77170585

  8. pointcut 切面表达式 切入点表达式

    下面给出一些常见切入点表达式的例子. 任意公共方法的执行: execution(public * *(..)) 任何一个以“set”开始的方法的执行: execution(* set*(..)) Ac ...

  9. 为何GET只发一次TCP连接,POST发两次TCP连接

    GET和POST是HTTP请求的两种基本方法,要说他们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  10. C#简单三层结构设计UI、BLL、DAL、Model实际项目应用例子

    C#简单三层结构设计UI.BLL.DAL .Model实际项目应用例子 在实际项目中,程序设计都有他的层次结构,比如MVC.MVP.普通的三层结构等等,不过现在用三层结构的相比可能少了,但是也有一些小 ...