I setup git diff
zawinąć do vimdiff, używając „ Git Diff z Vimdiff ” jako przewodnik, i to działa zgodnie z oczekiwaniami, chyba że istnieje wiele plików o zmianach.
Gdy jest wiele plików ze zmianami i uruchamiam git diff
, otwiera pierwszy plik, a po wyjściu z pierwszej instancji vimdiff pojawia się następujący komunikat:
external diff died, stopping at filename
To jest zupełnie inne zachowanie niż jestem przyzwyczajony. W przeszłości miałem podobną konfigurację z SVN i, gdy różnicowałem się z wieloma plikami, sprawdzałem pierwszy plik, a następnie pisałem i wychodziłem z niego, :wq
a następny plik z różnicami otwierał się.
Nie jest tak w przypadku Git. Próbowałem :n[ext]
, ale nie powoduje to wypełnienia lewego okna oryginalnym plikiem, dzięki czemu można go odróżnić od zmodyfikowanej wersji.
df
alias dodiff
idt
alias dodifftool
. Również wpisanie:qa
Vima spowoduje przejście do następnego zestawu zmian bez zapisywania czegokolwiek.git diff
niżgit difftool
. Więc aliasowałemd
do „diff” i'dt' to
difftool ”. Użyteczność jest ważniejsza niż tworzenie aliasów ze wzorem.:w!
zamiast:w
”. Jest tak, ponieważ git dzwonivimdiff
z-R
opcją. Możesz to zmienić za pomocągit config --global difftool.vimdiff.cmd 'vimdiff "$LOCAL" "$REMOTE"'
. To otworzy vimdiff w trybie do zapisu.Możesz spróbować
git difftool
, jest przeznaczony do tego.Najpierw musisz skonfigurować narzędzie diff do vimdiff
Następnie, jeśli chcesz się różnić, po prostu użyj
git difftool
zamiastgit diff
. Będzie działać zgodnie z oczekiwaniami.źródło
źródło
merge
zediff
w powyższych odpowiedziach rade, tjgit config --global diff.tool vimdiff
.Dla osób, które chcą użyć innego narzędzia do porównywania niewymienionego w git, powiedz za pomocą
nvim
. oto, co skończyło się na użyciu:W moim przypadku, zestaw
<tool name>
donvim -d
i wywoływać polecenia diff zźródło