我进行了一次三路合并分支的合并:
git checkout master
git merge BranchA
>> Fast-forward merge
git merge BranchB
>> Three-way-merge (prompts for a merge commit message)
我的问题有两个:
我如何中止合并? 通过三方合并,我被展示了写合并提交信息的编辑器。 但是,如果我未保存退出,git 仍会继续合并(只是合并提交信息将变为默认值而不是我本来可以写但取消了的值)
commit 11111233 Merge 'BranchB' into master
显然没有确认提交消息,我预计合并不会发生(与我未确认正常提交消息时的行为相同)。
- 两个合并的分支提交记录是否按时间顺序排序?
或者首先(在
git log
中),我会看到BranchA的提交,接着才是BranchB的提交?
编辑
为了更好地解释第二个问题,我进行了测试: 从master分支开始的2个分支(A和B)。 我在B上进行了一次提交,然后在A上,然后再在B上,最后再在A上进行了一次提交。 然后我将BranchA合并到master。 然后将BranchB合并到master。
但是当我在master上运行git log
时,这就是输出结果,也是我问第二个问题的原因:
commit 730fdd4d328999c86fa4d3b6120ac856ecaccab1
Merge: 7eb581b cc1085a
Author: Arthur Conandoyle <Arthur.Conandoyle@live.com>
Date: Mon Feb 9 21:24:27 2015 +0100
Merge branch 'BranchB' into master_COPY
commit 7eb581b39a8402e1694cc4bf4eab4a3feb1143f8
Author: Arthur Conandoyle <Arthur.Conandoyle@live.com>
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 <Arthur.Conandoyle@live.com>
Date: Mon Feb 9 21:20:29 2015 +0100
(BranchB) - Add settings to the last new features
commit 5f5b846a2f89886d01244ba77af941f554233b51
Author: Arthur Conandoyle <Arthur.Conandoyle@live.com>
Date: Mon Feb 9 21:18:54 2015 +0100
(BranchA) - Add some changes
commit 92a57a56b6b7c9694fbedda71b8070fc58683dde
Author: Arthur Conandoyle <Arthur.Conandoyle@live.com>
Date: Mon Feb 9 21:18:17 2015 +0100
(BranchB) - Some changes
commit 221765476e348833cf8da73b1bf5239f3d4240e8
Author: Arthur Conandoyle <Arthur.Conandoyle@live.com>
Date: Tue Feb 3 12:12:19 2015 +0100
Change (this is the last commit of the parent 'master' branch)
(正如Srdjan Grubor所写)按照合并的BranchA的提交先于所有提交,然后是合并的BranchB的所有提交,按照合并的顺序排列……但有趣的是,git log
显示的是按时间顺序排序的,而提交并没有按分支分组显示!
HEAD
、合并基础与另一个分支端点。在 Git 中,当HEAD
是合并基础时,会发生“快进式”合并。 - torekread-tree
的-m
选项的文档中已经这样说明了。不确定是否还有其他人使用这个术语... - torek