Forçando 'git merge' a declarar todas as diferenças como um conflito de mesclagem

Em um 'git merge' eu gostaria que qualquer diferença, mesmo que não fosse normalmente um conflito de mesclagem, fosse considerada um conflito de mesclagem. Então, com 'git mergetool' eu posso ver e resolver cada diferença. Eu tentei especificar '* -merge' em .gitattributes, mas isso não parece ter funcionado:

$ git checkout master
Switched to branch 'master'
$ ls
foo.c
$ git merge add-on
Updating a628824..2219552
Fast-forward
  0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 bar.c
$ cat .gitattributes 
* -merge
$ ls
bar.c   foo.c

Para o add-on 'git merge' acima, eu esperava um conflito de mesclagem para 'bar.c' sem nenhuma versão base, nenhuma versão local e uma versão remota. [edit] Como sugerido em uma resposta, uma mesclagem não ocorreu acima. Aqui está um caso em que forcei uma mesclagem, ainda sem conflito de mesclagem desejado:

$ git merge --no-ff add-on
Merge made by the 'recursive' strategy.
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 bing.c

Note que acima 'bing.c' está realmente vazio; mas, esse não é o problema porque fornecer um arquivo não vazio ainda é mesclado. [edit 2] Eu tentei --no-commit com este resultado:

$ git merge --no-ff --no-commit add-on
Automatic merge went well; stopped before committing as requested
$ git status
# On branch master
# Changes to be committed:
#
#   new file:   boom.c
#
$ git mergetool
No files need merging
$ cat .gitattributes 
* -merge

o que estou perdendo? Existe uma maneira de confirmar que '.gitattributes' está sendo usado / lido?

questionAnswers(3)

yourAnswerToTheQuestion