So verwenden Sie Grep zum Suchen im Git -Repository

So verwenden Sie Grep zum Suchen im Git -Repository
Jedes Git -Repository enthält viele Dateien, Ordner, Zweige, Tags usw. Manchmal muss der jeweilige Inhalt im Git -Repository mit einem regulären Ausdrucksmuster gesucht werden. Der Befehl 'Git Grep' wird verwendet, um in den Kassenzweig- und lokalen Dateien zu suchen. Wenn der Benutzer jedoch den Inhalt in einer Zweigstelle durchsucht, der Inhalt jedoch in einer anderen Niederlassung des Repositorys gespeichert ist, erhält er die Suchausgabe nicht. In diesem Fall muss der Benutzer den Befehl "git grep" ausführen, um die Suche in allen Repository -Zweigen anzuwenden.

Konfigurationsparameter des GREP -Befehls:

Die Befehlsparameter "Git Grep" werden verwendet, um diesen Befehl zu konfigurieren, das unten erwähnt wurde.

Parametername Zweck
Grep.Muster-Art Es wird verwendet, um das Standard -Matching -Verhalten festzulegen.
Grep.vollständiger Name Es ist auf TRUE festgelegt, um die Option für -vollname standardmäßig zu aktivieren.
Grep.Spalte Es ist auf TRUE eingestellt, um die Option -Column standardmäßig zu aktivieren.
Grep.Zeilennummer Es ist auf TRUE eingestellt, um die Option -n standardmäßig aktivieren zu können.
Grep.ExtendedRegExp Es ist auf TRUE eingestellt, um die Option "Extededed -REGEXP" standardmäßig zu aktivieren. Diese Option funktioniert jedoch nicht, wenn der Grep. Der Mustertyp enthält einen anderen Wert anstelle des Standardwerts.
Grep. Themen Es wird verwendet, um die Anzahl der Grep -Arbeiter -Threads einzustellen.
Grep.FallbacktonoIndex Wenn es auf wahr ist, dann wird der Git Grep -No -Index, wenn der Git Grep außerhalb eines Git -Repositorys ausgeführt wird. Der Standardwert dieses Parameters ist falsch.

Optionen des GREP -Befehls:

Der 'Git Grep' Der Befehl verfügt über viele Optionen, um den Repository -Inhalt auf unterschiedliche Weise zu durchsuchen. Einige der häufig verwendeten Grep -Optionen haben unten beschrieben.

Möglichkeit Zweck
-i, -Inness -Case Es wird für Fall unempfindliche Übereinstimmungen der Muster und der Dateien verwendet.
-ICH Es wird verwendet, um das Muster nicht in Binärdateien zu übereinstimmen.
-maximale Tiefe Es wird für jede in der Befehlszeile angegeben. Der Tiefenwert von -1 zeigt keine Grenze an. Diese Option wird ignoriert, wenn sie aktive Wildcards enthält.
-r, -rezisive Es funktioniert wie -max-Depth = -1 und es ist der Standardwert.
-No-recursive Es funktioniert wie -max -Depth = 0.
-w, -Word -regexp Es wird verwendet, um das Muster nur an der Wortgrenze zu entsprechen.
-v, -invert -Match Es wird verwendet, um nicht übereinstimmende Zeilen auszuwählen.
-vollständiger Name Es wird verwendet, um die Pfade zum Ausgang relativ zum Top -Verzeichnis von Projekten zu zwingen.
-e Es wird für die Muster verwendet, beginnend mit - und sollte mit dem Grep verwendet werden.
-und, -or, -not, (…) Diese Optionen werden verwendet, um die mehreren Muster für die Suche zu definieren. -oder ist der Standardbetreiber und hat eine höhere Vorrang.
-E, -extended -regexp, -g, -basic -regexp Es wird für POSIX Extended/Basic Regexp -Muster verwendet.
-P, -Perl -regexp Es wird für perl-kompatible reguläre Expressionsmuster verwendet.
-F, -Fixed -Strings Es wird für die festen Zeichenfolgenmuster verwendet.
-F Es wird verwendet, um die Muster aus der Datei zu lesen.
-n, -Line -number Es wird verwendet, um die Zeilennummer den übereinstimmenden Zeilen zu präfixen.
-O, nur matching Es wird verwendet, um nur die übereinstimmenden (nicht leeren) Teile einer passenden Linie zu drucken.
-C, -Count Es wird verwendet, um die Anzahl der übereinstimmenden Zeilen anzuzeigen.
-brechen Es wird verwendet, um eine leere Linie zwischen den Übereinstimmungen aus den verschiedenen Dateien zu drucken.
-Hilfe Es wird verwendet, um alle verfügbaren Optionen mit der Beschreibung des GREP -Befehls anzuzeigen.

Aktivieren Sie die Grep -Konfiguration:

Führen Sie vor dem Ausführen des Befehls "Git Grep" dieses Tutorials den folgenden Befehl aus, um aktiviert zu werden -erweitert-regexp Und -N Optionen des GREP -Befehls.

$ git config --global grep.extendregexp true
$ git config --global grep.Leinenzahl wahr

Verwendung des GREP -Befehls zur Suche:

Ein lokales Repository mit dem Namen Buchhandlung wurde in diesem Tutorial verwendet, um die Ausgabe des GREP -Befehls zum Durchsuchen von Inhalten im Repository zu überprüfen. Das Repository enthält zwei Dateien. Diese sind Bücherliste.Php Und bookType.Php.

Führen Sie den folgenden Befehl aus, um das Wort zu durchsuchen "Buchentyp" In den Repository -Dateien.

$ git grep 'buchtyp' $ (git rev -list -all)

Die folgende Ausgabe zeigt, dass das Wort "Buchentyp" existiert in Linie 1 des bookType.Php Datei.

Führen Sie den folgenden Befehl aus, um die Zeilen der Repository -Dateien mit den enthaltenen SHA -Werten zu durchsuchen, die enthalten "Boo" Zu Beginn der Dateien. Hier, das i Die Option wurde für die von Fall unempfindliche Suche verwendet.

$ git grep -i 'boo*' $ (Git rev -list -alle)

Die folgende Ausgabe zeigt das "Boo" Enthält zwei Dateien unter Zeile Nummer 1, aber der Eintrag für die Bücherliste.Php Die Datei wurde zweimal für zwei Commits angezeigt.

Das Muster wurde im Inhalt der Repository -Datei in den vorherigen Befehlen durchsucht. Führen Sie den folgenden Befehl aus, um den Inhalt der bestimmten Datei zu durchsuchen.

$ git grep -f 'bookType.Php.''

Die folgende Ausgabe zeigt das Der Buchtyp.Php Die Datei gibt es im aktuellen Repository, und die Datei enthält eine einzelne Zeile.

Führen Sie den folgenden Befehl aus, um das Muster in dem Inhalt der Repository -Dateien zu durchsuchen, "Buch". Hier wurde die Option -e für das Musteranpassung verwendet.

$ git grep -e 'Buch' '

Die folgende Ausgabe zeigt, dass beide Bücherliste.Php Und bookType.Php Dateien enthalten das Wort 'Buch' bei Liniennummer 1.

Führen Sie den folgenden Befehl aus, um mehrere Muster im Inhalt der Repository -Dateien zu durchsuchen. Hier wird die Option -e für das Regex -Muster -Matching verwendet, und das Rohr (|) funktioniert als logisch oder. Die Dateien, die das Wort enthalten 'Buch' oder 'Autor' wird nach der Ausführung des folgenden Befehls angezeigt.

$ Git Grep -e 'Buch*| Autor.''

Die folgende Ausgabe zeigt, dass das Wort 'Autor' existiert zweimal in der Autorinfo.Php Datei und das Wort 'Buch' existiert einmal in der Bücherliste.Php Und bookType.Php Datei.

Abschluss:

Der 'Git Grep' ist ein nützlicher Befehl zum Durchsuchen des spezifischen Inhalts im Git -Repository. Die Suche kann auf unterschiedliche Weise durchgeführt werden, indem die verschiedenen Optionen dieses Befehls verwendet werden. Die Verwendung einiger Optionen wurde in diesem Tutorial mit einem Demo -Repository beschrieben.