So verwenden Sie Git Diff: Commits, Branches, Dateien und nebeneinander
Ein Befehl vergleicht Ihren Arbeitsordner, den Staging-Bereich, Commits, Branches und Tags. Hier erfahren Sie, welche Form Sie jeweils verwenden sollten, warum sich zwei Punkte und drei Punkte unterscheiden und wie Sie einen echten Vergleich nebeneinander erhalten.
Geschrieben von Kodmora
Das Softwarehaus hinter GitTree
- Commit-Verlauf
- Zweige
- Commits
Auf dieser Seite
`git diff` ohne Argumente zeigt Änderungen an, die Sie nicht bereitgestellt haben. `git diff --staged` zeigt an, was der nächste Commit enthalten wird, und `git diff main feature` vergleicht zwei Zweige. Fügen Sie -- path/to/file zu einem beliebigen Formular hinzu, um es auf eine Datei zu beschränken. Git selbst hat im Terminal keine Side-by-Side-Ansicht. Dafür benötigen Sie git difftool oder eine Git-GUI.
Welchen Git-Diff-Befehl benötige ich?
| Du willst sehen | Befehl |
|---|---|
| Änderungen noch nicht durchgeführt | git diff |
| Was der nächste Commit enthalten wird | git diff --staged |
| Alles seit dem letzten Commit | git diff HEAD |
| Zwei Commits | git diff <a> <b> |
| Zwei Zweige, Spitze an Spitze | git diff main feature |
| Was für ein Zweig, der seit seiner Abspaltung hinzugefügt wurde | git diff main...feature |
| Zwei Tags | git diff v1.0 v2.0 |
| Eine Datei | git diff -- src/search.ts |
Wie lese ich die Git-Diff-Ausgabe?
diff --git a/src/search.ts b/src/search.ts
index 4e1f2a0..9b3c7d1 100644
--- a/src/search.ts
+++ b/src/search.ts
@@ -12,7 +12,7 @@ export function search(query: string) {
const terms = tokenize(query);
- return index.find(terms, { limit: 20 });
+ return index.find(terms, { limit: 50 });
}---und+++benennen die alte und neue Version der Datei.@@ -12,7 +12,7 @@ist ein Hunk-Header: 7 Zeilen ab Zeile 12 in jeder Version.- Zeilen, die mit
-beginnen, wurden entfernt, Zeilen mit+wurden hinzugefügt, der Rest ist Kontext.
Die Lektion zum Lesen von Unterschieden übt dies Schritt für Schritt.
Wie unterscheide ich zwei Commits?
# any two commits, older first
git diff 3e52f10 7c1d9ab
# the last commit against the one before it
git diff HEAD~1 HEAD
# one commit against its parent, with the message
git show 7c1d9abWie unterscheide ich zwei Zweige?
# the tips of both branches
git diff main feature
# only what feature added since it left main
git diff main...feature
# a remote branch
git fetch origin
git diff main origin/mainWie kann ich eine Datei unterscheiden?
# working copy against the last commit
git diff HEAD -- src/search.ts
# the same file on two branches
git diff main feature -- src/search.ts
# a file at two commits
git diff HEAD~3 HEAD -- src/search.ts
# two files outside any repository
git diff --no-index old.txt new.txtWie kann ich dafür sorgen, dass Git Diff Leerzeichen ignoriert?
| Option | Was es ignoriert |
|---|---|
-w oder --ignore-all-space | Alle Leerzeichen, einschließlich neu eingerückter Zeilen |
-b oder --ignore-space-change | Änderungen in der Menge an Leerzeichen |
--ignore-space-at-eol | Leerzeichen am Zeilenende |
--ignore-blank-lines | Leerzeilen hinzugefügt oder entfernt |
Diese wirken sich nur auf das aus, was der Diff anzeigt. Sie ändern nichts daran, was gestagt oder committet wird. -w ist diejenige, nach der man greifen sollte, wenn durch eine erneute Einrückung eine ganze Datei verändert aussieht.
Wie liste ich nur die geänderten Dateien auf?
# names only
git diff --name-only main...feature
# names with A, M, D or R
git diff --name-status main...feature
# lines added and removed per file
git diff --stat main...featureWie sehe ich, welche Wörter sich geändert haben?
git diff --word-diff
git diff --color-wordsWord-Diffs helfen bei langen Zeilen, z. B. Markdown-Absätzen, bei denen ein geändertes Wort die gesamte Zeile als geändert markiert.
Wie erhalte ich ein Side-by-Side-Diff?
Plain git diff druckt eine einzelne Spalte und hat keine Side-by-Side-Option. Sie haben drei Möglichkeiten, zwei Spalten abzurufen: Zeigen Sie mit git difftool auf ein Diff-Programm, installieren Sie einen Terminal-Pager wie delta oder verwenden Sie eine Git-GUI.
# pick a tool once
git config --global diff.tool vimdiff
# open each changed file in it
git difftool main...feature
# skip the prompt for each file
git difftool -ySo lesen Sie einen Parallelunterschied in GitTree
Öffnen Sie ein Diff
Wählen Sie eine geänderte Datei in Ihren Arbeitsänderungen oder in einem beliebigen Commit aus.
Wählen Sie die Ansicht
Wählen Sie unter Diff-Ansicht über dem Diff Hunk, Inline oder Split aus. Geteilt zeigt Vorher und Nachher nebeneinander.
Passen Sie es an
Führen Sie in der Befehlspalette Leerzeichen in Differenzen ignorieren, Geänderte Wörter hervorheben oder Diff-Zeilen umbrechen aus.
Vergleichen Sie zwei Zweige
Führen Sie Compare References… aus, um zwei beliebige Zweige, Tags oder Commits auszuwählen und die Änderungen seit ihrer Zusammenführungsbasis oder von Tipp zu Tipp anzuzeigen.

Siehe Eine Diff-Ansicht auswählen und verwenden und Referenzen vergleichen für jede Option.
Häufig gestellte Fragen
Warum zeigt Git Diff nichts an?
Ihre Änderungen sind wahrscheinlich gestagt. git diff vergleicht den Arbeitsordner mit dem Staging-Bereich, also führen Sie git diff --staged oder git diff HEAD aus. Neue nicht verfolgte Dateien werden erst angezeigt, wenn Sie sie hinzufügen.
Was ist der Unterschied zwischen Git Diff und Git Status?
git status listet auf, welche Dateien geändert wurden. git diff zeigt die geänderten Zeilen darin an.
Wie vergleiche ich meinen Zweig mit der Hauptzweig?
Führen Sie git diff main...HEAD aus, um nur die Arbeit Ihres Zweigs anzuzeigen. Zuerst abrufen und mit origin/main mit der neuesten Remote-Version vergleichen.
Ist git diff --cached dasselbe wie --staged?
Ja. Es handelt sich um zwei Namen für dieselbe Option.
Wie speichere ich ein Diff in einer Datei?
Führen Sie git diff > changes.patch aus. Sie können die Datei später anwenden, wie in Erstellen und Anwenden eines Patches gezeigt.
Quellen
Behauptungen zu anderen Produkten wurden anhand der offiziellen Seiten auf 7. November 2026 überprüft. Preise und Ausstattung ändern sich; Die Seiten der Anbieter sind die Quelle der Wahrheit.
