Hvordan du bruker grep for å søke i git -depotet

Hvordan du bruker grep for å søke i git -depotet
Ethvert Git -depot inneholder mange filer, mapper, filialer, tagger osv. Noen ganger krever det å søke i det aktuelle innholdet i Git -depotet ved hjelp av et vanlig uttrykksmønster. 'Git grep' -kommando brukes til å søke i kassen og lokale filer. Men hvis brukeren søker i innholdet i en gren, men innholdet er lagret i en annen gren av depotet, vil han/hun ikke få søkeutgangen. I så fall må brukeren kjøre 'Git grep' -kommandoen for å bruke søket i alle depotgrener.

Konfigurasjonsparametere for GREP -kommando:

Kommandoparametrene 'Git grep' brukes til å konfigurere denne kommandoen har nevnt nedenfor.

Parameternavn Hensikt
grep.mønstertype Det brukes til å sette standard matchende oppførsel.
grep.fullt navn Det er satt til sant for å aktivere alternativet -Full -navn som standard.
grep.kolonne Det er satt til sant for å aktivere alternativet -kolonne som standard.
grep.linjenummer Det er satt til sant for å aktivere -n -alternativet som standard.
grep.ExtendedRegexp Det er satt til sant for å aktivere alternativet -extended -gegexp som standard. Men dette alternativet vil ikke fungere hvis grep. Mønstertype inneholder en annen verdi i stedet for standardverdien.
grep. tråder Det brukes til å angi antall greparbeidertråder.
grep.FallbacktonoIndex Hvis det er satt til sant, så git grep -ingen -indeks når git grep utført utenfor et git -depot. Standardverdien for denne parameteren er falsk.

Alternativer for GREP -kommando:

De 'git grep' Kommandoen har mange alternativer for å søke i depotinnholdet på forskjellige måter. Noen av de ofte brukte GREP -alternativene har beskrevet nedenfor.

Alternativ Hensikt
-Jeg, -ignore -sak Det brukes til tilfelle ufølsomme kamper av mønstrene og filene.
-Jeg Det brukes til ikke å samsvare med mønsteret i binære filer.
-Maks-dybde Den brukes for hver gitt på kommandolinjen. Dybdeverdien på -1 indikerer ingen grense. Dette alternativet blir ignorert hvis det inneholder aktive jokertegn.
-R, -Rekursive Det fungerer som -max-dybde = -1, og det er standardverdien.
-Ingen-Recursive Det fungerer som -max -dybde = 0.
-W, -Word -GEGEXP Det brukes til å matche mønsteret bare ved ordgrensen.
-V, -invert -match Det brukes til å velge ikke-matchende linjer.
-fullt navn Den brukes til å tvinge banene til utdataene i forhold til prosjektets toppkatalog.
-e Det brukes til mønstrene som starter med - og bør brukes med grep.
-og, -eller, ikke, (...) Disse alternativene brukes til å definere de flere mønstrene for å søke. -eller er standardoperatøren og -og har høyere forrang enn -eller.
-E, -utvidet -GEGEXP, -G, -Basic -GEGEXP Det brukes til POSIX utvidede/grunnleggende regexp -mønstre.
-P, -Perl -GEGEXP Det brukes til perl-kompatible vanlige uttrykksmønstre.
-F, -fikserte strenger Det brukes til de faste strengmønstrene.
-f Det brukes til å lese mønstrene fra filen.
-n, -linje -nummer Det brukes til å prefiksere linjenummeret til matchende linjer.
-o, bare matching Den brukes til å skrive ut bare de matchede (ikke-tomme) delene av en matchende linje.
-C, -Count Det brukes til å vise antall linjer som samsvarer.
-gå i stykker Den brukes til å skrive ut en tom linje mellom kampene fra de forskjellige filene.
-hjelp Det brukes til å vise alle tilgjengelige alternativer med beskrivelsen av GREP -kommandoen.

Aktiver GREP -konfigurasjon:

Før du kjører 'Git grep' -kommandoen over denne opplæringen, kjør følgende kommando for å aktivere -Utvidet-Regexp og -n Alternativer for GREP -kommandoen.

$ git config -global grep.utvidesexp sant
$ git config -global grep.Linenumber sann

Bruk av GREP -kommando for å søke:

Et lokalt depot som heter bokhandel har blitt brukt i denne opplæringen for å sjekke utgangen fra GREP -kommandoen for å søke innhold i depotet. Depotet inneholder to filer. Disse er bokliste.PHP og boktype.PHP.

Kjør følgende kommando for å søke i ordet 'Boktype' I depotfilene.

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

Følgende utgang viser at ordet 'Boktype' eksisterer i linje 1 av boktype.PHP fil.

Kjør følgende kommando for å søke i linjene i depotfilene med Commit SHA -verdiene som inneholder 'Boo' Ved starten av filene. Her, -i Alternativet har brukt til case-ufølsom søk.

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

Følgende utgang viser det 'Boo' inneholder to filer på linje nummer 1, men oppføringen for bokliste.PHP Filen har dukket opp to ganger for to forpliktelser.

Mønsteret er søkt inne i innholdet i depotfilen i de tidligere kommandoene. Kjør følgende kommando for å søke i innholdet i den aktuelle filen.

$ git grep -f 'booktype.PHP.'

Følgende utgang viser det Boktypen.PHP Fil eksisterer i det nåværende depotet, og filen inneholder en enkelt linje.

Kjør følgende kommando for å søke i mønsteret, 'bok' inne i innholdet i depotfilene. Her har alternativet -e -alternativet brukt til mønstermatching.

$ git grep -e 'bok'

Følgende utgang viser at begge bokliste.PHP og boktype.PHP Filer inneholder ordet 'Bok' på linje nummer 1.

Kjør følgende kommando for å søke på flere mønstre i innholdet i depotfilene. Her har alternativet brukt til Regex -mønstermatching, og røret (|) fungerer som logisk eller. Filene som inneholder ordet 'Bok' eller 'forfatter' vil bli vist etter å ha utført følgende kommando.

$ git grep -e 'bok*| Forfatter.'

Følgende utgang viser at ordet 'forfatter' eksisterer to ganger i forfatterinfo.PHP fil, og ordet 'Bok' eksisterer en gang i bokliste.PHP og boktype.PHP fil.

Konklusjon:

De 'git grep' er en nyttig kommando for å søke i det spesifikke innholdet i Git -depotet. Søkingen kan gjøres på forskjellige måter ved å bruke de forskjellige alternativene til denne kommandoen. Bruken av noen alternativer er beskrevet i denne opplæringen ved å bruke et demo -depot.