Wyświetlanie wszystkich 'Git diff' za pomocą vimdiff
Skonfigurowałem git diff
aby zawinąć w vimdiff, używając " Git Diff with Vimdiff" jako przewodnika i działa zgodnie z oczekiwaniami, chyba że jest wiele plików ze zmianami.
Gdy Jest wiele plików ze zmianami i uruchamiam git diff
, otwiera pierwszy plik i po zamknięciu pierwszej instancji vimdiff, pojawia się następujący komunikat:
external diff died, stopping at filename
To jest zupełnie inne zachowanie niż jestem przyzwyczajony. Miałem podobną konfigurację w przeszłości z SVN i, podczas różnicowania z wieloma plikami, przeglądałem pierwszy plik, następnie zapisywałem i kończyłem używając :wq
i otwierał się następny plik z różnicami.
Tak nie jest w przypadku Gita. Próbowałem :n[ext]
, ale to nie zapełnia lewego okna oryginalnym plikiem, aby można było go odróżnić od zmodyfikowanej wersji.
4 answers
git config --global diff.tool vimdiff
git config --global difftool.prompt false
Typowanie git difftool
daje oczekiwane zachowanie.
Polecenia nawigacyjne,
-
:qa
w vim-IE cykle do następnego pliku w zestawie zmian bez zapisywania czegokolwiek.
Aliasing (przykład)
git config --global alias.d difftool
.. pozwoli Ci wpisać git d
, Aby wywołać vimdiff.
Zaawansowane przypadki użycia,
- domyślnie, git wywołuje vimdiff z opcją-R. Możesz nadpisać go za pomocą git config --global difftool.vimdiff.cmd 'vimdiff" $ LOCAL ""$ REMOTE"". To się otworzy vimdiff w trybie zapisu, który umożliwia edycję podczas różnicowania.
-
:wq
w Vimie cykli do następnego pliku w zestawie zmian z zapisanymi zmianami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-17 20:42:05
Możesz spróbować git difftool
, jest przeznaczony do tego.
Najpierw musisz skonfigurować narzędzie diff do vimdiff
git config diff.tool vimdiff
Następnie, gdy chcesz się różnicować, po prostu użyj git difftool
zamiast git diff
. Będzie działać zgodnie z oczekiwaniami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-12 22:22:35
Git accepts kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
and opendiff as valid diff tools. You can also set up a custom tool.
git config --global diff.tool vimdiff
git config --global diff.tool kdiff3
git config --global diff.tool meld
git config --global diff.tool xxdiff
git config --global diff.tool emerge
git config --global diff.tool gvimdiff
git config --global diff.tool ecmerge
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-23 05:29:37
Dla osób, które chcą używać innego narzędzia diff nie wymienionego w git, powiedzmy za pomocą nvim
. oto, czego użyłem:
git config --global alias.d difftool -x <tool name>
W moim przypadku ustawiam <tool name>
na nvim -d
i wywołuję polecenie diff z
git d <file>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-29 15:53:42