Я не знаю, являются ли перечисленные вами шаги дословно тем, что произошло на самом деле, но если это так, то в коммите C3
переменная по-прежнему имеет значение 2, и фактически значение переменной не изменяется с момента коммита C2
в ветке iss53
.Затем вы объединили master
в iss53
.Это принесло то, что Git воспринял как изменение, происходящее из ветви функций, это изменение состояло в том, что переменная теперь имеет значение 4. Git сохранил версию, исходящую из master
, и это поведение, которое я обычно ожидаю от Git auto.алгоритм слияния.
В случае, если обе ветви изменили значение переменной, возникнет конфликт слияния.Например, если в коммите C3
переменная была изменена на 5, то Git не знал бы, чья версия истины по умолчанию установлена, и поэтому он не будет автоматически объединяться, вместо этого помечая эту строку как конфликт объединения.