Как заметил ElpieKay в комментарии , он действительно должен работать следующим образом: git merge -s ours
делает новый коммит слияния , который использует тот же снимок как текущий коммит.Но наличие коммита слияния означает, что новый коммит имеет два родительских коммитов: ранее текущий коммит в качестве первого родителя, а другой коммит - тот, который вы слили - в качестве второго родителя:
...--F--G--H--M <-- your-branch (HEAD)
/
...--J--K--L
Когда вы запускаете git log
, git log
должен следить за всеми родителями, показывая их сообщения в журнале, , если вы не скажете:
git log --first-parent
Это говорит Git, что при каждом слиянии, таком как M
, оно должно следовать только за первым родителем.После показа M
Git вернется к H
, а не к H
и L
.