Obligando a 'git merge' a declarar todas las diferencias como un conflicto de fusión

En una 'fusión de git' me gustaría que cualquier diferencia, incluso si normalmente no fuera un conflicto de combinación, se considere un conflicto de combinación. Luego, con 'git mergetool' puedo ver y resolver todas y cada una de las diferencias. Intenté especificar '* -merge' en .gitattributes pero eso no parece haber 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 el anterior 'git merge add-on' esperaba un conflicto de fusión para 'bar.c' sin versión base, sin versión local y una versión remota. [editar] Como se sugirió en una respuesta, una fusión no ocurrió arriba. Aquí hay un caso en el que forzé una fusión, aún sin conflicto de fusión deseado:

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

Tenga en cuenta que en el 'bing.c' anterior está realmente vacío; pero, ese no es el problema porque proporcionar un archivo no vacío aún se fusiona. [editar 2] Intenté --no-commit con 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

¿Qué me estoy perdiendo? ¿Hay alguna forma de confirmar que '.gitattributes' se está utilizando / leyendo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta