git可互换地合并两个分支

时间:2015-02-12 10:09:30

标签: git

假设我有两个分支主人并且开发。这两个合并之间的区别是什么: -

git checkout master
git merge develop

git checkout develop
git merge master

1 个答案:

答案 0 :(得分:2)

假设您有以下提交图:

master +--P-----+------+
           \
            \
development  +----+-----+-----+

第一个命令将导致:

master +--P-----+------+---------R1
           \                    /
            \                  /
development  +----+-----+-----+

第二个命令:

master +--P-----+------+-----------
           \                       \
            \                       \
development  +----+-----+-----+------R2

因此,不同之处在于合并的结果将放在不同的分支上。

但是R1R2将具有相同的文件状态,因为合并意味着当且仅当没有发生冲突时才应用与P的差异。

此外,您可以使用ourstheirs,...更改合并策略,以支持当前或其他分支的差异。所以:

git merge -s theirs development #first version

与:

相同
git merge -s ours master #second version

最后,如果发生 merge-conflict 的情况,这当然会导致相反的冲突文件。 (因为冲突文件首先放置当前分支。)