Erzwingen, dass 'git merge' alle Unterschiede als Zusammenführungskonflikt deklariert

Bei einem "Git Merge" möchte ich, dass jeder Unterschied, auch wenn es sich normalerweise nicht um einen Zusammenführungskonflikt handelt, als Zusammenführungskonflikt betrachtet wird. Dann kann ich mit 'git mergetool' jeden Unterschied sehen und auflösen. Ich habe versucht, '* -merge' in .gitattributes anzugeben, aber das scheint nicht zu funktionieren:

$ 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

Für das obige 'Git Merge Add-On' habe ich einen Zusammenführungskonflikt für 'bar.c' ohne Basisversion, ohne lokale Version und ohne Remote-Version erwartet. [Bearbeiten] Wie in einer Antwort vorgeschlagen, wurde oben keine Zusammenführung durchgeführt. Hier ist ein Fall, in dem ich eine Zusammenführung erzwungen habe, immer noch kein gewünschter Zusammenführungskonflikt:

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

Beachten Sie, dass 'bing.c' oben tatsächlich leer ist. Dies ist jedoch nicht das Problem, da die Bereitstellung einer nicht leeren Datei immer noch zusammengeführt wird. [edit 2] Ich habe versucht --no-commit mit diesem Ergebnis auszuführen:

$ 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

Was vermisse ich? Gibt es eine Möglichkeit zu bestätigen, dass ".gitattributes" verwendet / gelesen wird?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage