从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. MySQLi基于面向对象的编程

    http://blog.csdn.net/koastal/article/details/50650500

  2. MySQL中UNSIGNED和ZEROFILL的介绍

    UNSIGNED: 将数字类型无符号化,这与C和C++这些程序语言的unsigned含义相同. INT的类型范围-2 147 483 648~2 147 483 647 INT UNSIGNED范围0 ...

  3. <script>标签里的defer和async属性 区别(待补充)

    defer与async的区别(表格显示): table th:first-of-type { width: 150px; } table th:nth-of-type(2) { } 区别 defer ...

  4. hdu 4651 Partition && hdu 4658 Integer Partition——拆分数与五边形定理

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4651 参考:https://blog.csdn.net/u013007900/article/detail ...

  5. Django Ajax登录 防止CSRF

    什么是CSRF 维基百科: 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CS ...

  6. ios之runloop笔记

    网上关于runloop的文章不计其数,再此,贴个自认为讲的比较简单明了的文章 http://www.jianshu.com/p/536184bfd163 个人理解: ios的runloop应该是类似于 ...

  7. ALGO-3_蓝桥杯_算法训练_K好数(DP)

    问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = ,L = 2的时候,所有K好数为11...... 共7个 ...

  8. python学习笔记--pycurl模块安装遇到的问题。

    1.用easy_install安装的时候 [root@idayuan ~]# easy_install pycurl Searching for pycurl Best match: pycurl A ...

  9. MyEclipse中复制web项目,部署之后访问报错

  10. python 之 决策树分类算法

    发现帮助新手入门机器学习的一篇好文,首先感谢博主!:用Python开始机器学习(2:决策树分类算法) J. Ross Quinlan在1975提出将信息熵的概念引入决策树的构建,这就是鼎鼎大名的ID3 ...