当前位置:  开发笔记 > 开发工具 > 正文

如何停止在git中合并?

如何解决《如何停止在git中合并?》经验,为你挑选了1个好方法。

我有一个三向合并分支合并:

git checkout master
git merge BranchA

>> Fast-forward merge

git merge BranchB

>> Three-way-merge (prompts for a merge commit message)

我的问题是两个:

我怎样才能中止合并?通过三向合并,我向编辑器展示了编写merge-commit消息的位置.但是如果我在没有保存的情况下退出,git将继续进行合并(只是合并提交消息将是默认的,而不是我可以写的但是已中止)

commit 11111233
    Merge 'BranchB' into master

虽然,显然没有确认提交消息,我希望合并不会发生(当我不确认正常提交消息时的相同行为)

来自两个合并分支的提交是否按时间顺序排序?或者首先(在git log)我将看到从提交BranchA,从的提交遵循THEN BranchB


编辑

为了更好地解释我做出测试的第二个问题:从分支开始的2个分支(A和B).我在B上提交,然后在A上,然后再在B上,最后再在A上.然后我将BranchA合并为主.然后BranchB成为高手.

但是当我git log掌握时,这就是已经出现的,为什么我问第二个问题:

commit 730fdd4d328999c86fa4d3b6120ac856ecaccab1
Merge: 7eb581b cc1085a
Author: Arthur Conandoyle 
Date:   Mon Feb 9 21:24:27 2015 +0100

    Merge branch 'BranchB' into master_COPY

commit 7eb581b39a8402e1694cc4bf4eab4a3feb1143f8
Author: Arthur Conandoyle 
Date:   Mon Feb 9 21:23:18 2015 +0100

    BranchA) - This should be the (second) last change of the branch, and be the
    most recent into the git log, even if I merge another branch into master,
    AFTER the one where we are committing this.

commit cc1085a6aaa2ee4b26d3c3fbb93bee863d9e7c28
Author: Arthur Conandoyle 
Date:   Mon Feb 9 21:20:29 2015 +0100

    (BranchB) - Add settings to the last new features

commit 5f5b846a2f89886d01244ba77af941f554233b51
Author: Arthur Conandoyle 
Date:   Mon Feb 9 21:18:54 2015 +0100

    (BranchA) - Add some changes

commit 92a57a56b6b7c9694fbedda71b8070fc58683dde
Author: Arthur Conandoyle 
Date:   Mon Feb 9 21:18:17 2015 +0100

    (BranchB) - Some changes

commit 221765476e348833cf8da73b1bf5239f3d4240e8
Author: Arthur Conandoyle 
Date:   Tue Feb 3 12:12:19 2015 +0100

    Change (this is the last commit of the parent 'master' branch)

(由于斯尔詹Grubor写)我本来预计首(按时间顺序)从合并所有提交BranchATHEN所有从合并的提交BranchB,以下合并...的顺序..但它很有趣,怎么git log反而让他们按时间顺序,提交不会显示为分支组合!



1> jthill..:

branchB merge非常普通,需要普通的提交消息.有一个默认值,如果你退出而没有改变它,合并将完成.由于合并本身已经成功,现在停止它的唯一方法是提供一个错误的合并消息(一个空的合并消息将缺少它).

合并停止后,您可以中止它

git merge --abort
# or
git reset --merge

对你刚刚犯错误的任何事情的退出是

git reset --hard @{1}

git中没有分支"所有权"的概念,所有可以引用提交的方式都是对等方.

您可以更好地了解git log向您展示的结构

git log --graph --decorate --oneline

尝试使用--date-order--topo-order--all.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有