Zeigen Sie sowohl einen inszenierten als auch einen funktionierenden Baum in Git Diff?

Lesezeit: 2 Minuten

Zeigen Sie sowohl einen inszenierten als auch einen funktionierenden Baum
strobel

Wenn ich laufe git diff Ich sehe die Änderungen in meinem Arbeitsbaum und wenn ich laufe git diff --staged (Alternative --cached) dann sehe ich die Änderungen, die inszeniert sind (w/ git add) aber gibt es eine Möglichkeit mit git diff alles auf einmal sehen?

  • Erstaunliche Grafik, die die verschiedenen Arten von erklärt git diffist hier! stackoverflow.com/questions/1587846/…

    – strobel

    24. Oktober 12 um 23:10 Uhr


  • git status -v -v will bald genau das zeigen (git 2.3.4+, Q2 2015). Siehe meine Antwort unten.

    – VonC

    18. März ’15 um 7:30 Uhr

Wenn Sie die Änderungen zwischen dem Arbeitsbaum und Ihrem HEAD-Commit meinen (dh sowohl gestaffelte als auch nicht gestaffelte Änderungen zusammen), ist dies einfach erledigt mit:

git diff HEAD

  • Nein, OP will “alles auf einmal sehen”.

    – krlmlr

    24. Oktober 12 um 20:55 Uhr

  • @ user946850: Und git diff HEAD zeigt alle Änderungen (inszeniert und nicht inszeniert) in einem Aufruf von git diff.

    – CB Bailey

    24. Oktober 12 um 21:08 Uhr


  • Beim zweiten Lesen haben Sie vielleicht recht. Beachten Sie, dass dies hier bereits behandelt wurde: stackoverflow.com/a/1587952/946850

    – krlmlr

    24. Oktober 12 um 21:10 Uhr

  • Aber der Titel schlägt etwas anderes vor … Lassen Sie uns hören, was das OP sagt.

    – krlmlr

    24. Oktober 12 um 21:11 Uhr

  • @ user946850: Das ist jedoch kein Duplikat, da es ausdrücklich nach inszenierten Änderungen fragt [only]. Ich bin mir sicher, dass es irgendwo ein Duplikat gibt.

    – CB Bailey

    24. Oktober 12 um 21:12 Uhr

Zeigen Sie sowohl einen inszenierten als auch einen funktionierenden Baum
VonC

Gibt es eine Möglichkeit mit git diff alles auf einmal zu sehen?

Mit Git 2.4.0+ (April 2015).

Sehen 4055500 festschreiben von Michael J. Gruber mjg:

commit/status: Zeigen Sie den Index-Worktree-Diff mit -v -v (oder -vv)

git commit und git status zeigt im langen Format den Unterschied zwischen HEAD und dem Index, wenn angegeben -v. Dies ermöglicht die Vorschau eines Commits.

Sie listen auch nachverfolgte Dateien mit nicht bereitgestellten Änderungen auf, jedoch ohne Diff.

Einführen ‘-v -v‘ (oder -vv), die den Unterschied zwischen dem Index und dem Arbeitsbaum zeigt in Ergänzung zum HEAD Indexdiff. Dies ermöglicht eine Überprüfung von nicht bereitgestellten Änderungen, die möglicherweise im Commit fehlen.

Im Falle von ‘-v -v‘ (oder -vv), zusätzliche Kopfzeilen

Changes to be committed:

und

Changes not staged for commit:

werden vor den Diffs eingefügt, die denen im Statusteil entsprechen; letzteres mit vorangestelltem 50*- damit es mehr hervorsticht.

Im Fall des OP eine einfache git status -v -v (oder git status -vv) wird beides inszeniert zeigen und unstaged diffs.

  • Falls es für niemanden offensichtlich ist, können Sie die Flaggen auch kombinieren: git status -vv

    – Subfusion

    22. Oktober 16 um 0:37 Uhr

Zeigen Sie sowohl einen inszenierten als auch einen funktionierenden Baum
krlmlr

Der diffus Das visuelle Diff-Tool kann das: Es zeigt drei Bereiche an, wenn einige, aber nicht alle Änderungen inszeniert werden. Bei Konflikten sind es sogar vier Scheiben.

Screenshot von Diffus mit inszenierten und nicht inszenierten Bearbeitungen

Rufen Sie es mit auf

diffuse -m

in Ihrer Git-Arbeitskopie.

Wenn Sie mich fragen, der beste visuelle Unterschied, den ich seit einem Jahrzehnt gesehen habe.

  • Toller Tipp und sehr geschätzt, aber nicht gerade eine Antwort, da ich nach dem Befehl git gefragt habe, um dies zu tun. Markiere den anderen als Antwort…

    – strobel

    24. Oktober 12 um 23:10 Uhr

.

822570cookie-checkZeigen Sie sowohl einen inszenierten als auch einen funktionierenden Baum in Git Diff?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy