从history1分出来的A, B两个branch

A上有一些更改,例如

changeA2

changeA1

history1

B上有一些更改,例如

changeB2

changeB1

history1

---------------------

此时想把B branch上的改动merge到A branch,于是在A branch上执行 git merge B, 执行完毕后A branch的commit记录可能如下:

merge branch 'B' into A

changeA2

changeB2

changeB1

changeA1

history1

此时突然发现情况不对,想把刚才A上刚才的merge取消,遂在A上执行 git revert -m 1 <merge commit的SHA1码>,此时commit记录变成如下状态:

revert “merge branch 'B' into A”

merge branch 'B' into A

changeA2

changeB2

changeB1

changeA1

history1

注意,这时候如果你想再把B branch上的change merge回A上已经不可能了,当执行revert “merge branch 'B' into A”的时候你告诉git不要merge B上的东西(任何基于B的branch都不能merge了),解决方法有两种:

1. 把revert “merge branch 'B' into A”这个commit再revert回去,这一般不太可行,好不容易revert过来的又revert回去么?遂方法2

2. B上的change有些有用,又不想都放弃掉,此时在B上执行git reset <history1的SHA1码>, 也就是把B的头指针指到刚分出来时候的那个commit点,这时候改动还在,只不过都变成unstage状态,这时速度把不对的地方改过来,重新commit一下,此时B的commit记录变为:

NewChangeB

history1

此时再在A上merge B上的更改就可以了

Git revert merge的更多相关文章

  1. 如何git revert merge commit?

    答: git revert -m <parent-number> <commit-id> (适用于merge操作的commit) 参考资料: https://blog.csdn ...

  2. [Git] git revert ( revert commit 和 revert merge)

    转载自:http://blog.csdn.net/qinjienj/article/details/7621887 我们难免会因为种种原因执行一些错误的commit / push,git提供了reve ...

  3. revert merge会出现的问题

    比如当我们git revert的时候, git revert Git会抱怨: is a merge but no -m option was given 这是因为你revert的那个commit是一个 ...

  4. git revert 和 git reset的区别

    git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一次最新的提交    * git revert HEAD               ...

  5. Git学习笔记 git revert

    我们难免会因为种种原因执行一些错误的commit / push,git提供了revert命令帮助程序员修复这样的错误. 举个例子,下图是git commit 的历史记录 git revert 命令会通 ...

  6. git revert 用法

    git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交    * git revert HEAD                ...

  7. git revert用法以及与git reset的区别

    git revert用法 git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一次最新的提交 * git revert HEAD     ...

  8. git reset与git revert的区别

    http://alpha-blog.wanglianghome.org/2010/07/30/git-partial-rollback/ reset(版本撤回) 格式 git reset [-q] [ ...

  9. git revert后导致合并代码丢失

    起因 我有一个开发分支antd3.x和一个主分支develop,我在合并antd3.x到develop的时候发现有些修改没有合并进来. 查找问题 然后就去网上查,发现这篇文章<git合并丢失代码 ...

随机推荐

  1. 【转】每天一个linux命令(25):linux文件属性详解

    原文网址:http://www.cnblogs.com/peida/archive/2012/11/23/2783762.html Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模 ...

  2. JUC原子类之 原子操作数据类型

    根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ; 数组类型: AtomicInteger ...

  3. PHP安全相关的配置(2)

    php用越来越多!安全问题更为重要!这里讲解如果安全配置php.ini 安全配置一 (1) 打开php的安全模式 php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如syst ...

  4. postman环境变量的设置

    相同的api接口因为部署环境不同,分为test和fromal 不仅重复,还容易出错 下面来介绍一下Postman的一个小技巧来解决这种问题: 设置环境变量 Tips: 不是在OS中设置环境变量哦   ...

  5. 添加BAUD_4800

    1.hal_uart.h 添加 #define HAL_UART_BR_4800 0x05 2.mt_uart.h 修改 #define MT_UART_DEFAULT_BAUDRATE HAL_UA ...

  6. python下的类的部分特点

    #coding=utf-8 class data: def __init__(self): #构造函数 self.name=' def pp(self): print self.name class ...

  7. C/C++动态分配连续空间,下标越界导致的free():invalid next size问题

    昨天帮导师做的一个程序出了内存泄露的bug(在VS上程序运行一切正常,等return返回后才出错) 而且是程序运行结束后才出现的错误,在退出前一切代码都顺利执行完了,只是return之后出错. 之后我 ...

  8. python random 随机选择操作

    # -*- coding:utf-8 -*- import random arr = ['A','B','C','D','E','F'] #生成(0.0, 1.0)的随机数 print random. ...

  9. 学习笔记之Jira

    Jira | Issue & Project Tracking Software | Atlassian https://www.atlassian.com/software/jira The ...

  10. testNG断言

    https://junit.org/junit4/javadoc/latest/org/junit/Assert.html#assertThat 断言:Hamcrest - Matchers 对象: ...