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?