即使合并后文件中存在冲突标记,为什么git mergetool也没有显示冲突?

I’m checked out on feature/my-branch and running git merge dev. The conflict markers added to the file are:

<<<<<<< HEAD
    let foo = "foo"
    let bar = "bar"
||||||| merged common ancestors
    let baz = "baz"
    let bar = "bar"
=======
    let baz = "baz"
    let qux = "qux"
>>>>>>> dev

I then run git mergetool. I have p4mergetool set as my mergetool and it seems to be working. My .gitconfig:

[merge]
    tool = p4mergetool
    conflictstyle = diff3
[mergetool "p4mergetool"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge $PWD/$BASE $PWD/$REMOTE $PWD/$LOCAL $PWD/$MERGED
    trustExitCode = true

The git mergetool auto resolves the above conflict (0 conflicts shown in the tool) as:

let foo = "foo"
let qux = "qux"

这样做很有意义:即使HEAD和dev发生冲突,我们也可以看到一个分支更新了一行,另一分支更新了另一行。因此,我们可能可以假设我们想要的。

我的问题是:

  1. Is there a way to run/configure git-mergetool or p4mergetool specifically to NOT make this assumption and still show a conflict?
  2. Do I need to run both commands:

    git merge dev
    git mergetool
    

    to have this conflict solved this automatically? I.e. produce the output:

    let foo = "foo"
    let qux = "qux"
    

Said another way: is there a git merge strategy/arguments that I can use to simply run the merge command to produce:

let foo = "foo"
let qux = "qux"