VERWENDUNG EINES VISUELLEN DIFF-TOOLS
Die Standardantwort (in der Befehlszeile)
Die besten Antworten zeigen, wie man die zwischengespeicherten/gepufferten Änderungen in der Index
:
$ git diff --cached
oder $ git diff --staged
was ein Alias ist.
Stattdessen wird das Visual Diff Tool gestartet
Die Standardantwort spuckt die Diff-Änderungen in der Git-Bash aus (d. h. auf der Befehlszeile oder in der Konsole). Für diejenigen, die eine visuelle Darstellung der Unterschiede zwischen den einzelnen Dateien bevorzugen, gibt es ein Skript in git, das ein visuelles Diff-Tool für jede betrachtete Datei startet, anstatt sie auf der Kommandozeile anzuzeigen. difftool
:
$ git difftool --staged
Dies bewirkt dasselbe wie git diff --staged
mit der Ausnahme, dass jedes Mal, wenn das Diff-Tool ausgeführt wird (d. h. jedes Mal, wenn eine Datei von diff verarbeitet wird), das visuelle Standard-Diff-Tool gestartet wird (in meiner Umgebung ist dies kdiff3 ).
Nach dem Start des Tools hält das Git-Diff-Skript an, bis das visuelle Diff-Tool geschlossen wird. Daher müssen Sie jede Datei schließen, um die nächste Datei zu sehen.
Sie können immer verwenden difftool
anstelle von diff
in Git-Befehlen
Für Ihren gesamten Bedarf an visueller Kommunikation, git difftool
wird anstelle eines beliebigen git diff
Befehl, einschließlich aller Optionen.
Um zum Beispiel das visuelle Vergleichstool zu starten, ohne zu fragen, ob dies für jede Datei geschehen soll, fügen Sie die -y
Option (ich denke, dass Sie dies in der Regel wünschen!!):
$ git difftool -y --staged
In diesem Fall wird jede Datei im visuellen Vergleichstool nacheinander aufgerufen, und die nächste Datei wird angezeigt, nachdem das Tool geschlossen wurde.
Oder um sich das Diff einer bestimmten Datei anzusehen, die in der Index
:
$ git difftool -y --staged <<relative path/filename>>
Alle Optionen finden Sie in der Manpage:
$ git difftool --help
Visual Git Tool einrichten
Um ein anderes visuelles Git-Werkzeug als das Standardwerkzeug zu verwenden, benutzen Sie die -t <tool>
Option:
$ git difftool -t <tool> <<other args>>
Oder lesen Sie in der difftool-Manualseite nach, wie Sie Git so konfigurieren, dass es ein anderes visuelles Standard-Diff-Werkzeug verwendet.
Beispiel .gitconfig
Einträge für vscode als Diff/Merge-Tool
Ein Teil der Einrichtung eines Difftools beinhaltet die Änderung des .gitconfig
Datei, entweder durch Git-Befehle, die sie im Hintergrund ändern, oder durch direktes Bearbeiten der Datei.
Sie finden Ihre .gitconfig
in Ihrem Heimatverzeichnis, wie zum Beispiel ~
unter Unix oder normalerweise c:\users\<username>
unter Windows).
Oder Sie können den Benutzer .gitconfig
in Ihrem Standard-Git-Editor mit git config -e --global
.
Hier sind Beispieleinträge in meinem globalen Benutzer .gitconfig
für VS Code sowohl als Diff-Tool als auch als 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