git grep

Fehlersuche

Sucht Text in verfolgten Dateien


Der Befehl 'git grep' durchsucht die Dateien, die Git verfolgt, und gibt jede passende Zeile mit Dateinamen aus. Er ist bei großen Projekten schneller als ein normales grep, überspringt unverfolgte und ignorierte Dateien (wie node_modules) und kann jeden Commit oder Branch durchsuchen, ohne ihn auszuchecken.

Syntax

git grep [<options>] <pattern> [<tree>...] [--] [<pathspec>...]
[ ] optional| oder<arg> Platzhalter... wiederholbar--flag Option

Optionen

Klicke auf eine Option, um sie aufzuklappen

Einsteiger (5)

Setzt vor jeden Treffer seine Zeilennummer.

EmpfohlenDirekt zur passenden Zeile springen

Beispiel

git grep -n cart

Groß- und Kleinschreibung ignorieren.

EmpfohlenEin Wort finden, egal wie es geschrieben ist

Beispiel

git grep -i welcome

Zeigt pro Datei die Zahl der passenden Zeilen statt der Zeilen.

Bei BedarfWie viele Zeilen in jeder Datei passen

Beispiel

git grep -c cart

Zeigt nur die Namen der Dateien mit Treffern.

Bei BedarfPassende Dateien auflisten, z. B. um sie alle zu öffnen

Beispiel

git grep -l login

Das Muster nur als ganzes Wort finden.

Bei BedarfTreffer in Wortteilen vermeiden

Beispiel

git grep -w i

Die richtige Option wählen

git grep vs grep

Warum Gits eigene Suche

BefehlDurchsuchtAlte Versionen
grep -rJede Datei auf der Platte, auch node_modulesNo
git grepNur verfolgte DateienJa: git grep x <commit>

Beispiele

Text suchen

git grep "cart"

Jede Zeile jeder verfolgten Datei, die cart enthält.


Mit Zeilennummern

git grep -n "cart"

Ergänzt die Zeilennummer.


In einem anderen Commit

git grep "cart" v1.0

Durchsucht das Projekt, wie es bei v1.0 war.


Nur einige Dateien

git grep "TODO" -- "*.js"

Die Suche auf JavaScript-Dateien beschränken.

Workflow-Beispiele

1
git grep -n "count("

Jeder Aufruf mit seiner Zeile

2
git grep -l "count("

Die Liste der zu bearbeitenden Dateien

Fehlerbehebung

Keine Ausgabe, Exit-Code 1

Ursache: Nichts gefunden

Prüfe die Schreibweise, versuche -i, oder prüfe, ob die Datei verfolgt ist

Eine gerade erstellte Datei wird nicht durchsucht

Ursache: git grep durchsucht nur verfolgte Dateien

Führe git add aus, oder nutze git grep --untracked

Tipps & Stolperfallen

Best Practices

  • ✓Aktiviere Zeilennummern einmal: git config --global grep.lineNumber true.
  • ✓Durchsuche alte Releases mit git grep <pattern> <tag>, statt sie auszuchecken.

Häufige Fehler

  • ✗Unverfolgte Dateien in den Treffern erwarten — füge sie zuerst hinzu oder nutze --untracked.
  • ✗Anführungszeichen um Muster mit Leerzeichen oder Sonderzeichen vergessen.

FAQ

A:

Ja: standardmäßig einfache, -E für erweiterte, -P für Perl-Syntax.

A:

Es durchsucht die Trees, die du nennst; den Commit, der einen Text hinzufügte, findest du mit git log -S "text".