У вас есть эта история (время течет слева направо):
-o--o--o--o <- master
\
a--a--a---M--R <- branch A
\ /
b--b--b <- branch B
R
- это обращение их слияния M
.
Что если после первогоВозврат слияния, кто-то слиться B, чтобы освоить, а затем A, чтобы освоить? Или в обратном порядке? Будут ли изменения от B до первого возврата на главном устройстве?
То есть вы получите эту историю:
-o--o--o--o--X----Y <- master
| / |
| b--b--b | <- branch B
\ / \ /
a--a--a---M--R <- branch A
Здесь первый B
был объединен с master
, затем A
. Как вы можете видеть, обращение теперь является частью master
, как и изменения, которые оно принесло, то есть оно отменяет изменения ветви B
. Вы можете видеть, что X
и все фиксации до, но исключая, Y
имеют изменения ветви B
, но Y
и позже эти изменения отменяются.
Если, с другойhand, ветвь A
сначала была объединена, затем ветвь B
(а также ее аннулирование R
) уже включены в объединение. git merge B
скажет вам: «Уже в курсе».