git 交替合并两个分支
git merging two branches interchangeably
假设我有两个分支 master 和 develop。这两个合并有什么区别:-
git checkout master
git merge develop
和
git checkout develop
git merge master
假设您有以下提交图:
master +--P-----+------+
\
\
development +----+-----+-----+
第一个命令将导致:
master +--P-----+------+---------R1
\ /
\ /
development +----+-----+-----+
第二条命令变为:
master +--P-----+------+-----------
\ \
\ \
development +----+-----+-----+------R2
不同之处在于合并的结果将放在不同的分支上。
但是 R1
和 R2
将具有相同的文件状态,因为合并意味着当且仅当没有冲突发生时应用与 P
的两个差异。
此外,您可以将 合并策略 更改为 ours
、theirs
、...以支持当前或其他分支的差异。所以:
git merge -s theirs development #first version
等同于:
git merge -s ours master #second version
最后,如果发生合并冲突,这当然会导致相反的冲突文件。 (因为冲突文件将当前分支放在第一位)。
假设我有两个分支 master 和 develop。这两个合并有什么区别:-
git checkout master
git merge develop
和
git checkout develop
git merge master
假设您有以下提交图:
master +--P-----+------+
\
\
development +----+-----+-----+
第一个命令将导致:
master +--P-----+------+---------R1
\ /
\ /
development +----+-----+-----+
第二条命令变为:
master +--P-----+------+-----------
\ \
\ \
development +----+-----+-----+------R2
不同之处在于合并的结果将放在不同的分支上。
但是 R1
和 R2
将具有相同的文件状态,因为合并意味着当且仅当没有冲突发生时应用与 P
的两个差异。
此外,您可以将 合并策略 更改为 ours
、theirs
、...以支持当前或其他分支的差异。所以:
git merge -s theirs development #first version
等同于:
git merge -s ours master #second version
最后,如果发生合并冲突,这当然会导致相反的冲突文件。 (因为冲突文件将当前分支放在第一位)。