Forces & #39;git merge& #39; объявить все различия конфликтом слияния

В '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 add -on» я ожидал конфликта слияния для «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] Я пробовал --без -фиксации с этим результатом:

$ 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» используется/читается?

7
задан GoZoner 12 April 2012 в 21:22
поделиться