Zum Inhalt springen
GitTree
Git-Anleitungen4 Min. gelesen

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

Aktualisiert
  • 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?

Was jede Form von Git Diff vergleicht
Du willst sehenBefehl
Änderungen noch nicht durchgeführtgit diff
Was der nächste Commit enthalten wirdgit diff --staged
Alles seit dem letzten Commitgit diff HEAD
Zwei Commitsgit diff <a> <b>
Zwei Zweige, Spitze an Spitzegit diff main feature
Was für ein Zweig, der seit seiner Abspaltung hinzugefügt wurdegit diff main...feature
Zwei Tagsgit diff v1.0 v2.0
Eine Dateigit 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 7c1d9ab

Wie 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/main

Wie 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.txt

Wie kann ich dafür sorgen, dass Git Diff Leerzeichen ignoriert?

Whitespace-Optionen für Git Diff
OptionWas es ignoriert
-w oder --ignore-all-spaceAlle Leerzeichen, einschließlich neu eingerückter Zeilen
-b oder --ignore-space-changeÄnderungen in der Menge an Leerzeichen
--ignore-space-at-eolLeerzeichen am Zeilenende
--ignore-blank-linesLeerzeilen 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...feature

Wie sehe ich, welche Wörter sich geändert haben?

git diff --word-diff
git diff --color-words

Word-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 -y

So lesen Sie einen Parallelunterschied in GitTree

  1. Öffnen Sie ein Diff

    Wählen Sie eine geänderte Datei in Ihren Arbeitsänderungen oder in einem beliebigen Commit aus.

  2. 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.

  3. Passen Sie es an

    Führen Sie in der Befehlspalette Leerzeichen in Differenzen ignorieren, Geänderte Wörter hervorheben oder Diff-Zeilen umbrechen aus.

  4. 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.

Umschalten eines Diffs auf die Split-Ansicht in GitTree: vorher und nachher, nebeneinander.
Umschalten eines Diffs auf die Split-Ansicht in GitTree: vorher und nachher, nebeneinander.GitTree-Schnittstelle mit einem Demonstrations-Repository.

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.