Come usare Grep per la ricerca nel repository Git

Come usare Grep per la ricerca nel repository Git
Qualsiasi repository Git contiene molti file, cartelle, filiali, tag, ecc. A volte richiede la ricerca del contenuto particolare nel repository Git usando un modello di espressione regolare. Il comando 'Git Grep' viene utilizzato per cercare nella filiale di checkout e nei file locali. Ma se l'utente sta cercando il contenuto in una filiale, ma il contenuto è archiviato in un altro ramo del repository, allora non otterrà l'output di ricerca. In tal caso, l'utente deve eseguire il comando "Git grep" per applicare la ricerca in tutti i rami del repository.

Parametri di configurazione del comando GREP:

I parametri di comando "Git grep" vengono utilizzati per configurare questo comando di seguito.

Nome parametro Scopo
grep.patternType Viene utilizzato per impostare il comportamento di corrispondenza predefinito.
grep.nome e cognome È impostato su true per abilitare l'opzione -full -name per impostazione predefinita.
grep.colonna È impostato su TRUE per abilitare l'opzione -column per impostazione predefinita.
grep.LINEMBER È impostato su true per abilitare -n opzione per impostazione predefinita.
grep.ExtendedRegexp È impostato su True per abilitare l'opzione -Extended -Regexp per impostazione predefinita. Ma questa opzione non funzionerà se il grep. Il tipo di pattern contiene un altro valore al posto del valore predefinito.
grep. Discussioni Viene utilizzato per impostare il numero di thread Grep Worker.
grep.fallbacktonoindex Se è impostato su True, allora il Grep -No -indice quando il Git Grep eseguiva al di fuori di un repository Git. Il valore predefinito di questo parametro è falso.

Opzioni di comando grep:

IL 'git grep' Il comando ha molte opzioni per cercare il contenuto del repository in diversi modi. Alcune delle opzioni GREP comunemente usate hanno descritto di seguito.

Opzione Scopo
-I, -Ignoro -Case Viene utilizzato per corrispondenze insensibili al caso degli schemi e dei file.
-IO Viene usato per non corrispondere al modello nei file binari.
-profondità massima È usato per ogni dato nella riga di comando. Il valore di profondità di -1 indica nessun limite. Questa opzione viene ignorata se contiene caratteri jolly attivi.
-r, -recursivo Funziona come -max-depth = -1 ed è il valore predefinito.
-NO-RECURSIVO Funziona come -max -depth = 0.
-W, -Word -Regexp È usato per abbinare il modello solo al limite della parola.
-V, -Invert -Match Viene utilizzato per selezionare linee non corrispondenti.
-nome e cognome Viene utilizzato per forzare i percorsi all'output rispetto alla directory superiore del progetto.
-e È usato per i motivi che iniziano con - e dovrebbe essere usato con il grep.
-e, -or, -Not, (...) Queste opzioni vengono utilizzate per definire i modelli multipli per la ricerca. -o è l'operatore predefinito e -e ha una precedenza maggiore di -or.
-E, -Exted -Regexp, -g, -basic -regexp Viene utilizzato per i pattern REGEXP estesi/base Posix.
-P, -perl -regexp È usato per modelli di espressione regolari compatibili perl.
-F, -stringhe fissate Viene utilizzato per i pattern di stringa fissa.
-F Viene utilizzato per leggere i modelli dal file.
-n, -line -numero Viene utilizzato per prefisporre il numero di riga alle linee corrispondenti.
-o, -solo matching Viene utilizzato per stampare solo le parti abbinate (non vuote) di una linea di corrispondenza.
-c, -count È usato per mostrare il numero di righe che corrispondono.
-rottura Viene utilizzato per stampare una linea vuota tra le partite dai diversi file.
-aiuto Viene utilizzato per visualizzare tutte le opzioni disponibili con la descrizione del comando GREP.

Abilita configurazione GREP:

Prima di eseguire il comando "git grep" di questo tutorial, eseguire il comando seguente per abilitare -esteso-regexp E -N Opzioni del comando grep.

$ git config -Global grep.ExtendRegexp True
$ git config -Global grep.Linenumber True

Uso del comando Grep per la ricerca:

Un repository locale chiamato libreria è stato utilizzato in questo tutorial per verificare l'output del comando GREP per la ricerca del contenuto nel repository. Il repository contiene due file. Questi sono lista di libri.PHP E booktype.PHP.

Esegui il comando seguente per cercare la parola 'Tipo di libro' Nei file di repository.

$ git grep 'tipo di libro' $ (git rev -list -all)

Il seguente output mostra che la parola 'Tipo di libro' esiste in Linea 1 del booktype.PHP file.

Esegui il comando seguente per cercare le righe dei file del repository con i valori di commit sHA che contengono 'boo' All'inizio dei file. Qui, il -i l'opzione è stata utilizzata per la ricerca insensibile al caso.

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

Il seguente output lo mostra 'boo' contiene due file alla riga numero 1, ma la voce per il lista di libri.PHP Il file è apparso due volte per due commit.

Il modello è stato cercato all'interno del contenuto del file repository nei comandi precedenti. Esegui il comando seguente per cercare il contenuto del file particolare.

$ git grep -f 'booktype.PHP.'

Il seguente output lo mostra il libro di booktype.PHP Il file esiste nel repository corrente e il file contiene una singola riga.

Esegui il comando seguente per cercare il modello, "libro" all'interno del contenuto dei file del repository. Qui, l'opzione -e è stata utilizzata per la corrispondenza dei pattern.

$ git grep -e "libro"

Il seguente output mostra che entrambi lista di libri.PHP E booktype.PHP I file contengono la parola 'Libro' alla riga numero 1.

Esegui il comando seguente per cercare più modelli all'interno del contenuto dei file del repository. Qui, l'opzione -e ha usato per la corrispondenza del pattern regex e il tubo (|) funziona come logico o. I file che contengono la parola 'Libro' O 'autore' verrà mostrato dopo aver eseguito il seguente comando.

$ git grep -e 'libro*| autore.'

Il seguente output mostra che la parola 'autore' esiste due volte nel AuthorInfo.PHP file e la parola 'Libro' esiste una volta nel lista di libri.PHP E booktype.PHP file.

Conclusione:

IL 'git grep' è un comando utile per la ricerca del contenuto specifico nel repository Git. La ricerca può essere effettuata in modi diversi utilizzando le diverse opzioni di questo comando. Gli usi di alcune opzioni sono stati descritti in questo tutorial utilizzando un repository demo.