Принудительное «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»? привыкаешь / читаешь?