VERWENDUNG EINES VISUAL DIFF TOOL
Die Standardantwort (in der Befehlszeile)
Die Top-Antworten hier zeigen korrekt, wie die zwischengespeicherten / bereitgestellten Änderungen in den Index
folgenden Bereichen angezeigt werden :
$ git diff --cached
oder $ git diff --staged
was ist ein Alias.
Starten Sie stattdessen das Visual Diff Tool
Die Standardantwort spuckt die Diff-Änderungen bei der Git-Bash aus (dh in der Befehlszeile oder in der Konsole). Für diejenigen , die eine visuelle Darstellung der Datei Unterschiede inszenierten bevorzugen, gibt es ein Skript innerhalb von git , die Kutter ein Diff - Tool für jede Datei und nicht gesehen , als sie auf der Kommandozeile zeigt, genannt difftool
:
$ git difftool --staged
Dies funktioniert genauso wie git diff --staged
, außer dass jedes Mal, wenn das Diff-Tool ausgeführt wird (dh jedes Mal, wenn eine Datei von Diff verarbeitet wird), das standardmäßige visuelle Diff-Tool gestartet wird (in meiner Umgebung ist dies kdiff3 ).
Nach dem Start des Tools wird das Git Diff-Skript angehalten, bis Ihr Visual Diff-Tool geschlossen wird. Daher müssen Sie jede Datei schließen, um die nächste zu sehen.
Sie können immer difftool
anstelle von diff
in git-Befehlen verwenden
Funktioniert für alle Ihre visuellen Diff-Anforderungen git difftool
anstelle eines git diff
Befehls, einschließlich aller Optionen.
Fügen Sie beispielsweise die -y
Option hinzu, um das Visual Diff-Tool zu starten, ohne zu fragen, ob es für jede Datei ausgeführt werden soll (ich denke, normalerweise möchten Sie dies !!):
$ git difftool -y --staged
In diesem Fall wird jede Datei im Visual Diff-Tool einzeln aufgerufen und die nächste nach dem Schließen des Tools aufgerufen.
Oder um den Unterschied einer bestimmten Datei zu betrachten, die in der Index
folgenden Datei bereitgestellt wird :
$ git difftool -y --staged <<relative path/filename>>
Alle Optionen finden Sie in der Manpage:
$ git difftool --help
Visual Git Tool einrichten
Verwenden Sie die folgende -t <tool>
Option, um ein anderes visuelles Git-Tool als das Standardwerkzeug zu verwenden :
$ git difftool -t <tool> <<other args>>
In der Manpage difftool erfahren Sie, wie Sie git für die Verwendung eines anderen Standard-Visual-Diff-Tools konfigurieren.
Beispieleinträge .gitconfig
für vscode als Diff / Merge-Tool
Ein Teil des Einrichtens eines Difftools besteht darin, die .gitconfig
Datei entweder über Git-Befehle zu ändern, die sie hinter den Kulissen ändern, oder sie direkt zu bearbeiten.
Sie finden Ihre .gitconfig
in Ihrem Home-Verzeichnis (z. B. ~
unter Unix oder normalerweise c:\users\<username>
unter Windows).
Oder Sie können den Benutzer .gitconfig
in Ihrem Standard-Git-Editor mit öffnen git config -e --global
.
Hier sind Beispieleinträge in meinem globalen Benutzer .gitconfig
für VS-Code als Diff-Tool und Merge-Tool:
[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
funktioniert auch. Siehe meine Antwort unten