Svenska ▾ Topics ▾ Latest version ▾ git-grep last updated in 2.45.0

NAMN

git-grep - Skriv ut rader som matchar ett mönster

SYNOPSIS

git grep [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | --word-regexp]
	   [-v | --invert-match] [-h|-H] [--full-name]
	   [-E | --extended-regexp] [-G | --basic-regexp]
	   [-P | --perl-regexp]
	   [-F | --fixed-strings] [-n | --line-number] [--column]
	   [-l | --files-with-matches] [-L | --files-without-match]
	   [(-O | --open-files-in-pager) [<bläddrare>]]
	   [-z | --null]
	   [ -o | --only-matching ] [-c | --count] [--all-match] [-q | --quiet]
	   [--max-depth <depth>] [--[no-]recursive]
	   [--color[=<when>] | --no-color]
	   [--break] [--heading] [-p | --show-function]
	   [-A <post-context>] [-B <pre-context>] [-C <kontext>]
	   [-W | --function-context]
	   [(-m | --max-count) <num>]
	   [--threads <num>]
	   [-f <file>] [-e] <pattern>
	   [--and|--or|--not|(|)|-e <mönster>…​]
	   [--recurse-submodules] [--parent-basename <basnamn>]
	   [ [--[no-]exclude-standard] [--cached | --untracked | --no-index] | <träd>…​]
	   [--] [<sökvägsspec>…​]

BESKRIVNING

Leta efter angivna mönster i de spårade filerna i arbetsträdet, blobbar som är registrerade i indexfilen eller blobbar i givna trädobjekt. Mönster är listor med ett eller flera sökuttryck separerade med radbrytningstecken. En tom sträng som sökuttryck matchar alla rader.

ALTERNATIV

--cached

Istället för att söka efter spårade filer i arbetskatalogen, sök efter blobbar som är registrerade i indexfilen.

--untracked

Förutom att söka i de spårade filerna i arbetskatalogen, sök även i ospårade filer.

--no-index

Sök efter filer i den aktuella katalogen som inte hanteras av Git, eller genom att ignorera att den aktuella katalogen hanteras av Git. Detta liknar i stort sett att köra det vanliga verktyget grep(1) med dess -r-alternativ specificerat, men med några ytterligare fördelar, som att använda sökvägsmönster-mönster för att begränsa sökvägar; se posten sökvägsmönster i gitglossary[7] för mer information.

Det här alternativet kan inte användas tillsammans med --cached eller --untracked. Se även grep.fallbackToNoIndex i KONFIGURATION nedan.

--no-exclude-standard

Sök även i ignorerade filer genom att inte använda .gitignore-mekanismen. Endast användbart med --untracked.

--exclude-standard

Uppmärksamma inte ignorerade filer som anges via .gitignore-mekanismen. Endast användbart när du söker efter filer i den aktuella katalogen med --no-index.

--recurse-submodules

Sök rekursivt i varje undermodul som är aktiv och utcheckad i arkivet. När den används i kombination med alternativet <träd> kommer prefixet för all undermodulutdata att vara namnet på det överordnade projektets <träd>-objekt. Detta alternativ kan inte användas tillsammans med --untracked, och det har ingen effekt om --no-index anges.

-a
--text

Bearbeta binära filer som om de vore text.

--textconv

Respektera textconv filterinställningar.

--no-textconv

Använd inte textconv-filterinställningarna. Detta är standardinställningen.

-i
--ignore-case

Ignorera skillnader i gemener och versaler mellan mönstren och filerna.

-I

Matchar inte mönstret i binära filer.

--max-depth <djup>

För varje <sökvägsmönster> som anges på kommandoraden, gå ner högst <djup>-nivåer i kataloger. Värdet -1 betyder ingen gräns. Detta alternativ ignoreras om <sökvägsmönster> innehåller aktiva jokertecken. Med andra ord, om "a*" matchar en katalog med namnet "a*", matchas "*" bokstavligt så --max-depth är fortfarande effektivt.

-r
--recursive

Samma som --max-depth=-1; detta är standard.

--no-recursive

Samma som --max-depth=0.

-w
--word-regexp

Matcha mönstret endast vid ordgränsen (antingen börja i början av en rad, eller föregås av ett icke-ordtecken; sluta i slutet av en rad eller följt av ett icke-ordtecken).

-v
--invert-match

Välj rader som inte matchar.

-h
-H

Som standard, visar kommandot filnamnet för varje matchning. Alternativet -h används för att undertrycka denna utdata. -H finns där för fullständighetens skull och gör ingenting förutom att det åsidosätter -h som angavs tidigare på kommandoraden.

--full-name

När kommandot körs från en underkatalog, matar det vanligtvis ut sökvägar i förhållande till den aktuella katalogen. Det här alternativet tvingar att sökvägar matas ut i förhållande till projektets översta katalog.

-E
--extended-regexp
-G
--basic-regexp

Använd POSIX utökad/grundläggande regexp för mönster. Standardinställningen är att använda grundläggande regexp.

-P
--perl-regexp

Använd Perl-kompatibla reguljära uttryck för mönster.

Stöd för den här typen av reguljära uttryck är ett valfritt kompilerings-tids beroende. Om Git inte kompilerades med stöd för dem kommer det att dö om det här alternativet anges.

-F
--fixed-strings

Använd fasta strängar för mönster (tolka inte mönster som ett regex).

-n
--line-number

Lägg till radnumret som prefix till matchande rader.

--column

Prefixera den 1-indexerade byte-offseten för den första matchningen från början av matchningsraden.

-l
--files-with-matches
--name-only
-L
--files-without-match

Istället för att visa alla matchande rader, visa bara namnen på filer som innehåller (eller inte innehåller) matchningar. För bättre kompatibilitet med git diff är --name-only en synonym för --files-with-matches.

-O[<bläddrare>]
--open-files-in-pager[=<bläddrare>]

Öppna de matchande filerna i bläddrareen (inte utdata från grep). Om bläddraren råkar vara "less" eller "vi", och användaren bara angav ett mönster, placeras den första filen automatiskt vid den första matchningen. Argumentet bläddrare är valfritt; om det anges måste det fästas vid alternativet utan mellanslag. Om bläddrare inte är angivet kommer standard-bläddraren att användas (se core.pager i git-config[1]).

-z
--null

Använd \0 som avgränsare för sökvägar i utdata och skriv ut dem ordagrant. Utan detta alternativ citeras sökvägar med "ovanliga" tecken enligt beskrivningen för konfigurationsvariabeln core.quotePath (se git-config[1]).

-o
--only-matching

Skriv endast ut de matchande (icke-tomma) delarna av en matchande rad, med varje sådan del på en separat utdatarad.

-c
--count

Istället för att visa varje matchande rad, visa antalet rader som matchar.

--color[=<när>]

Visa färgade matchningar. Värdet måste vara alltid (standard), aldrig eller automatiskt.

--no-color

Stäng av matchningsmarkering, även när konfigurationsfilen anger standardinställningen färg utdata. Samma som --color=never.

--break

Skriv ut en tom rad mellan träffar från olika filer.

--heading

Visa filnamnet ovanför träffarna i den filen istället för i början av varje rad som visas.

-p
--show-function

Visa föregående rad som innehåller matchningens funktionsnamn, såvida inte matchande rad är ett funktionsnamn i sig. Namnet bestäms på samma sätt som git diff räknar ut patch-styckes-huvuden (se Definiera en anpassade styckes-huvuden i gitattributes[5]).

-<num>
-C <num>
--context <num>

Visa <num> inledande och efterföljande rader, och placera en rad som innehåller -- mellan sammanhängande grupper av träffar.

-A <num>
--after-context <num>

Visa <num> efterföljande rader, och placera en rad som innehåller -- mellan sammanhängande grupper av träffar.

-B <num>
--before-context <num>

Visa <num> inledande rader, och placera en rad som innehåller -- mellan sammanhängande grupper av träffar.

-W
--function-context

Visa den omgivande texten från föregående rad som innehåller ett funktionsnamn upp till den före nästa funktionsnamn, vilket effektivt visar hela funktionen där matchningen hittades. Funktionsnamnen bestäms på samma sätt som git diff räknar ut patch-styckes-huvuden (se Definiera en anpassade styckes-huvuden i gitattributes[5]).

-m <num>
--max-count <num>

Begränsa antalet träffar per fil. När alternativen -v eller --invert-match används, stoppas sökningen efter det angivna antalet icke-träffar. Värdet -1 returnerar obegränsade resultat (standardvärdet). Värdet 0 avslutas omedelbart med en status som inte är noll.

--threads <num>

Antal grep-arbetstrådar att använda. Se ANMÄRKNINGAR OM TRÅDAR och grep.threads i KONFIGURATION för mer information.

-f <fil>

Läs mönster från <fil>, en per rad.

Att skicka mönstret via <fil> möjliggör att ett sökmönster som innehåller \0 kan tillhandahållas.

Inte alla mönstertyper stöder mönster som innehåller \0. Git kommer att fallera ut om en given mönstertyp inte kan stödja ett sådant mönster. Mönstertypen --perl-regexp har, när den kompileras mot PCRE v2-backend, det bredaste stödet för dessa typer av mönster.

I versioner av Git före 2.23.0 skulle mönster som innehöll \0 i tysthet anses vara fasta. Detta dokumenterades aldrig, det fanns också udda och odokumenterade interaktioner mellan t.ex. icke-ASCII-mönster som innehöll \0 och --ignore-case.

I framtida versioner kan vi lära oss att stödja mönster som innehåller \0 för fler sök-bakändor, fram till dess kommer vi att dö när mönstertypen i fråga inte stöder dem.

-e

Nästa parameter är mönstret. Detta alternativ måste användas för mönster som börjar med - och bör användas i skript som skickar användarinmatning till grep. Flera mönster kombineras med or (eller).

--and
--or
--not
( …​ )

Ange hur flera mönster kombineras med hjälp av booleska uttryck. --or är standardoperatorn. --and (och) har högre prioritet än --or. -e måste användas för alla mönster.

--all-match

När flera mönsteruttryck kombineras med --or anges, anges den här flaggan för att begränsa matchningen till filer som har rader som matchar alla.

-q
--quiet

Skriv inte ut matchande rader; avsluta istället med status 0 när det finns en matchning och med status som inte är noll när det inte finns någon.

<träd>…​

Istället för att söka efter spårade filer i arbetskatalogen, sök efter blobbar i de angivna träden.

--

Signalerar slutet på alternativen; resten av parametrarna är <sökvägsmönster>-begränsare.

<sökvägsmönster>…​

Om angivet, begränsa sökningen till sökvägar som matchar minst ett mönster. Både inledande sökvägar matchar och glob(7)-mönster stöds.

För mer information om syntaxen <sökvägsmönster>, se posten sökvägsmönster i gitglossary[7].

EXEMPEL

git grep time_t' -- *.[ch]

Söker efter time_t i alla spårade .c- och .h-filer i arbetskatalogen och dess underkataloger.

git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)

Letar efter en rad som har #define och antingen MAX_PATH eller PATH_MAX.

git grep --all-match -e NODE -e Unexpected

Söker efter en rad som innehåller NODE eller Oväntat i filer som har rader som matchar båda.

git grep solution -- :^Documentation

Söker efter lösning, exklusive filer i Dokumentation.

ANTECKNINGAR OM TRÅDAR

Alternativet --threads (och konfigurationen grep.threads) ignoreras när --open-files-in-pager används, vilket tvingar fram en enkeltrådad exekvering.

När man använder grep på objektlagret (med --cached eller med trädobjekt), kan det vara långsammare att köra med flera trådar än med en enda tråd om --textconv anges och det finns för många textkonverteringar. Om låg prestanda upplevs i detta fall kan det därför vara önskvärt att använda --threads=1.

KONFIGURATION

Allt under den här raden i det här avsnittet är selektivt inkluderat från dokumentationen git-config[1]. Innehållet är detsamma som det som finns där:

Warning

Missing sv/config/grep.adoc

See original version for this content.

GIT

En del av git[1]-sviten