Wymuszenie „łączenia git” w celu zadeklarowania wszystkich różnic jako konfliktu scalania

W „połączeniu git” chciałbym, aby jakakolwiek różnica, nawet jeśli normalnie nie była konfliktem scalania, była uważana za konflikt scalania. Następnie dzięki „git mergetool” widzę i rozwiązuję każdą różnicę. Próbowałem określić '* -merge' w .gitattributes, ale to chyba nie zadziałało:

$ 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

Dla powyższego „dodatku git merge” oczekiwałem konfliktu scalania dla „bar.c” bez wersji podstawowej, bez wersji lokalnej i wersji zdalnej. [edytuj] Jak zasugerowano w jednej odpowiedzi, scalenie nie nastąpiło powyżej. Oto przypadek, w którym wymusiłem scalenie, nadal nie jest pożądany konflikt scalania:

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

Zauważ, że powyżej 'bing.c' jest faktycznie pusty; ale to nie jest problem, ponieważ dostarczenie niepustego pliku nadal zostanie scalone. [edytuj 2] Próbowałem --no-commit z tym wynikiem:

$ 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

czego mi brakuje? Czy istnieje sposób na potwierdzenie, że „.gitattributes” jest używane / czytane?

questionAnswers(3)

yourAnswerToTheQuestion