UŻYWANIE NARZĘDZIA WIZUALNEGO DIFF
Domyślna odpowiedź (w wierszu poleceń)
Najważniejsze odpowiedzi tutaj poprawnie pokazują, jak wyświetlić buforowane / przemieszczane zmiany w Index:
$ git diff --cached
lub $ git diff --stagedktóry jest pseudonimem.
Zamiast tego uruchamia się narzędzie Visual Diff
Domyślna odpowiedź wypluwa zmiany w git bash (tj. W wierszu poleceń lub w konsoli). Dla tych, którzy wolą wizualną reprezentację różnic między plikami etapowymi, w git dostępny jest skrypt, który uruchamia wizualne narzędzie różnicowania dla każdego oglądanego pliku, zamiast pokazywać je w wierszu poleceń, o nazwie difftool:
$ git difftool --staged
Robi to tak samo, jak za git diff --stagedkażdym razem, gdy uruchamiane jest narzędzie diff (tj. Za każdym razem, gdy plik jest przetwarzany przez diff), uruchomi domyślne narzędzie wizualne diff (w moim środowisku jest to kdiff3 ).
Po uruchomieniu narzędzia skrypt git diff zatrzyma się do momentu zamknięcia narzędzia wizualnego porównywania. Dlatego musisz zamknąć każdy plik, aby zobaczyć następny.
Zawsze możesz używać difftoolzamiast diffpoleceń git
Dla wszystkich twoich potrzeb wizualnego różnicowania, git difftoolbędzie działać zamiast każdego git diffpolecenia, w tym wszystkich opcji.
Na przykład, aby uruchomić wizualne narzędzie do porównywania bez pytania, czy zrobić to dla każdego pliku, dodaj -yopcję (myślę, że zwykle będziesz tego chciał !!):
$ git difftool -y --staged
W takim przypadku będzie pobierał każdy plik w wizualnym narzędziu porównywania, jeden po drugim, wyświetlając następny plik po zamknięciu narzędzia.
Lub spojrzeć na różnicę określonego pliku, który jest umieszczony w Index:
$ git difftool -y --staged <<relative path/filename>>
Wszystkie opcje znajdziesz na stronie man:
$ git difftool --help
Konfigurowanie narzędzia Visual Git
Aby użyć wizualnego narzędzia git innego niż domyślny, użyj -t <tool>opcji:
$ git difftool -t <tool> <<other args>>
Lub zobacz stronę podręcznika difftool, aby dowiedzieć się, jak skonfigurować git, aby używał innego domyślnego narzędzia do wizualnego porównywania.
Przykładowe .gitconfigwpisy dla vscode jako narzędzia porównywania / scalania
Część konfiguracji difftool obejmuje zmianę .gitconfigpliku, albo za pomocą komend git, które zmieniają go za sceną, albo bezpośrednio go edytować.
Możesz go znaleźć .gitconfigw swoim katalogu domowym, na przykład ~w c:\users\<username>systemie Unix lub normalnie w systemie Windows).
Lub możesz otworzyć użytkownika .gitconfigw domyślnym edytorze Git za pomocą git config -e --global.
Oto przykładowe wpisy mojego globalnego użytkownika .gitconfigdla VS Code jako narzędzia do porównywania i scalania:
[diff]
tool = vscode
guitool = vscode
[merge]
tool = vscode
guitool = vscode
[mergetool]
prompt = true
[difftool "vscode"]
cmd = code --wait --diff \"$LOCAL\" \"$REMOTE\"
path = c:/apps/vscode/code.exe
[mergetool "vscode"]
cmd = code --wait \"$MERGED\"
path = c:/apps/vscode/code.exe
git status -vteż działa. Zobacz moją odpowiedź poniżej