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 --staged
któ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 --staged
każ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ć difftool
zamiast diff
poleceń git
Dla wszystkich twoich potrzeb wizualnego różnicowania, git difftool
będzie działać zamiast każdego git diff
polecenia, 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 -y
opcję (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 .gitconfig
wpisy dla vscode jako narzędzia porównywania / scalania
Część konfiguracji difftool obejmuje zmianę .gitconfig
pliku, albo za pomocą komend git, które zmieniają go za sceną, albo bezpośrednio go edytować.
Możesz go znaleźć .gitconfig
w swoim katalogu domowym, na przykład ~
w c:\users\<username>
systemie Unix lub normalnie w systemie Windows).
Lub możesz otworzyć użytkownika .gitconfig
w domyślnym edytorze Git za pomocą git config -e --global
.
Oto przykładowe wpisy mojego globalnego użytkownika .gitconfig
dla 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 -v
też działa. Zobacz moją odpowiedź poniżej