2619 Stimmen

Wie zeige ich die Änderungen an, die durchgeführt wurden?

Ich habe ein paar Änderungen für die Übergabe bereitgestellt. Wie kann ich die Differenz aller Dateien sehen, die für die nächste Übergabe bereitgestellt werden? Ich bin mir bewusst, dass Git-Status aber ich würde gerne die tatsächlichen Diffs sehen - nicht nur die Namen der Dateien, die bereitgestellt werden.

Ich sah, dass die git-diff(1) Manpage sagt

git diff [--options] [--] [ ]

Dieses Formular dient dazu, die von Ihnen vorgenommenen Änderungen in Bezug auf den Index (Bereitstellungsbereich für die nächste Übertragung) anzuzeigen. Mit anderen Worten, die Unterschiede sind das, was Sie könnte git anweisen, den Index weiter zu ergänzen, aber Sie haben es noch nicht getan. Sie können diese Änderungen mit git-add(1) durchführen.

Leider kann ich das nicht ganz nachvollziehen. Es muss doch einen praktischen Einzeiler geben, für den ich einen Alias erstellen kann, oder?

9voto

snibbets Punkte 937

Um die Unterschiede für eine bestimmte Stufendatei (oder mehrere Dateien) zu sehen, können Sie

git diff --staged -- <path>...

Zum Beispiel,

git diff --staged -- app/models/user.rb

8voto

Deepak Dixit Punkte 1352

Standardmäßig Git-Diff wird verwendet, um die Änderungen anzuzeigen, die nicht in die Liste der mit Git aktualisierten Dateien aufgenommen wurden. Wenn Sie jedoch die hinzugefügten oder vorgemerkten Änderungen anzeigen möchten, müssen Sie zusätzliche Optionen angeben, damit Git weiß, dass Sie an vorgemerkten oder hinzugefügten Dateien interessiert sind diff .

$ git diff          # Default Use
$ git diff --cached # Can be used to show difference after adding the files 
$ git diff --staged # Same as 'git diff --cached' mostly used with latest version of git 

Beispiel

$ git diff 
diff --git a/x/y/z.js  b/x/y/z.js index 98fc22b..0359d84 100644
--- a/x/y/z.js 
+++ b/x/y/z.js @@ -43,7 +43,7 @@ var a = function (tooltip) {

-        if (a)
+        if (typeof a !== 'undefined')
             res = 1;
         else
             res = 2;

$ git add x/y/z.js
$ git diff
$

Sobald Sie die Dateien hinzugefügt haben, können Sie die Standardeinstellung von 'git diff' nicht mehr verwenden.

$ git diff --cached
diff --git a/x/y/z.js  b/x/y/z.js index 98fc22b..0359d84 100644
    --- a/x/y/z.js 
    +++ b/x/y/z.js @@ -43,7 +43,7 @@ var a = function (tooltip) {

    -        if (a)
    +        if (typeof a !== 'undefined')
                 res = 1;
             else
                 res = 2;

3voto

Brent Bradburn Punkte 45995

git gui y git-cola sind grafische Hilfsmittel, mit denen Sie den Index anzeigen und bearbeiten können. Beide enthalten einfache visuelle Diffs für gestufte Dateien, und git-cola kann auch ein anspruchsvolleres visuelles Vergleichstool für die Seite-zu-Seite-Darstellung starten.

Siehe meine eng verwandte Antwort unter Wie entfernt man eine Datei aus dem Index in Git? und auch dieser offizielle Katalog von Git - GUI Klienten .

1voto

ergohack Punkte 1146

Le site --cached hat bei mir nicht funktioniert, ... wo ich, inspiriert von git log

git diff origin/<branch>..<branch> hat.

1voto

remcycles Punkte 858

Ein weiteres Werkzeug, das dies erleichtert, ist der Magit-Modus in Emacs. Seine Standardansicht listet sowohl die abgestuften als auch die nicht abgestuften Änderungen auf. Er funktioniert wie git add -p auf Steroiden, weil man mit Editor-Befehlen leicht ganze Pakete (oder sogar einzelne Codezeilen) in Szene setzen oder aufheben kann. Es ist wichtig, das Standard-Git-Porzellan zu kennen, aber ich benutze selten git diff --cached mehr.

https://magit.vc/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X