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?
Zeigen Sie sowohl einen inszenierten als auch einen funktionierenden Baum in Git Diff?
strobel
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 vongit 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
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
undgit 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 zumHEAD
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 KopfzeilenChanges 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
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.
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
.
Erstaunliche Grafik, die die verschiedenen Arten von erklärt
git diff
ist 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