Принудительное «git merge» объявляет все различия как конфликт слияния

В 'git merge' Я хотел бы, чтобы любое различие, даже если обычно это не конфликт слияния, считалось конфликтом слияния. Затем с помощью «git mergetool»; Я могу видеть и разрешать каждую разницу. Я попытался указать "* -merge" в .gitattributes, но это, похоже, не сработало:

$ 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

Для вышеупомянутого «дополнения git merge» Я ожидал конфликта слияния для «bar.c»; без базовой версии, без локальной версии и удаленной версии. [править] Как предлагается в одном ответе, слияние не произошло выше. Вот случай, когда я принудительно произвел слияние, по-прежнему нет желаемого конфликта слияния

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

Обратите внимание, что в приведенном выше «bing.c» на самом деле пусто; но это не является проблемой, поскольку предоставление непустого файла все еще объединяется. [править 2] Я попытался --no-commit с таким результатом:

$ 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

Что мне не хватает? Есть ли способ подтвердить, что «.gitattributes»? привыкаешь / читаешь?

Ответы на вопрос(3)

Ваш ответ на вопрос