Svenska â–Ÿ Topics â–Ÿ Latest version â–Ÿ git-for-each-ref last updated in 2.54.0

NAMN

git-for-each-ref - Skriv ut information om varje referens

SYNOPSIS

git for-each-ref [--count=<count>] [--shell|--perl|--python|--tcl]
		   [(--sort=<key>)
​] [--format=<format>]
		   [--include-root-refs] [--points-at=<object>]
		   [--merged[=<object>]] [--no-merged[=<object>]]
		   [--contains[=<object>]] [--no-contains[=<object>]]
		   [(--exclude=<pattern>)
​] [--start-after=<marker>]
		   [ --stdin | (<pattern>...)]

BESKRIVNING

Iterera över alla referenser som matchar <mönster> och visa dem enligt det angivna <format>, efter att ha sorterat dem enligt den angivna uppsÀttningen <nyckel>. Om <antal> anges, stoppa efter att sÄ mÄnga referenser visats. Interpolerade vÀrden i <format> kan valfritt citeras som strÀngliteraler i det angivna vÀrdsprÄket sÄ att de kan utvÀrderas direkt i det sprÄket.

ALTERNATIV

<mönster>...

Om ett eller flera <mönster>-parametrar anges visas endast referenser som matchar minst ett mönster, antingen med hjÀlp av fnmatch(3) eller bokstavligt, i det senare fallet matchande helt eller frÄn början upp till ett snedstreck.

--stdin

Listan över mönster lÀses frÄn standardindata i stÀllet för frÄn argumentlistan.

--count=<antal>

Stoppa efter att ha visat <antal> referenser.

--sort=<nyckel>

Sortera pÄ fÀltnamnet <nyckel>. AnvÀnd prefixet - för att sortera i fallande ordning efter vÀrdet. Om det inte anges anvÀnds refname. Du kan anvÀnda alternativet --sort=<nyckel> flera gÄnger, i vilket fall den sista nyckeln blir primÀrnyckeln.

--format[=<format>]

En strÀng som interpolerar %(fÀltnamn) frÄn en referens som visas och objektet den pekar pÄ. Dessutom Äterges strÀngliteralen %% som % och %xx - dÀr xx Àr hexadecimalsiffror - Äterges som tecknet med hexadecimalkoden xx. Till exempel interpolerar %00 till \0 (NUL), %09 till \t (TAB) och %0a till \n (LF).

Om det inte anges Àr <format> som standard %(objektnamn) SPC %(objekttyp) TAB %(refnamn).

--color[=<nÀr>]

Respektera alla fÀrger som anges i alternativet --format. FÀltet <nÀr_ mÄste vara ett av always, never eller auto (om <nÀr> saknas, bete sig som om always hade angetts).

--shell
--perl
--python
--tcl

Om givet, strÀngar som ersÀtter platshÄllarna %(fÀltnamn) anges, citeras de som strÀngliteraler som Àr lÀmpliga för det angivna vÀrdsprÄket. Detta Àr avsett att producera ett skriptlet som direkt kan "utvÀrderas".

--points-at=<objekt>

Lista endast referenser som pekar pÄ det givna objektet.

--merged[=<objekt>]

Lista endast referenser vars toppar Àr nÄbara frÄn den angivna incheckningen (HEAD om inget annat anges).

--no-merged[=<objekt>]

Lista endast referenser vars toppar inte kan nÄs frÄn <objekt>(HEAD om inget anges).

--contains[=<objekt>]

Lista endast referenser som innehÄller <objkct>(HEAD om inget anges).

--no-contains[=<objekt>]

Lista endast referenser som inte innehÄller <objekt> (HEAD om inget anges).

--ignore-case

Sortering och filtrering av referenser Àr inte skiftlÀgeskÀnsliga.

--omit-empty

Skriv inte ut en nyrad efter formaterade referenser dÀr formatet expanderar till den tomma strÀngen.

--exclude=<exkluderat-mönster>

Om ett eller flera --exclude-alternativ anges visas endast referenser som inte matchar nÄgra <exkluderade-mönster>-parametrar. Matchning görs med samma regler som <mönster> ovan.

--include-root-refs

Lista rotreferenser (HEAD och pseudorefs) förutom vanliga referenser.

--start-after=<markör>

TillÄter sidindelning av utdata genom att hoppa över referenser upp till och inklusive den angivna markören. Vid sidvisning bör det noteras att referenser kan tas bort, Àndras eller lÀggas till mellan anrop. Utdata ger endast de referenser som följer markören lexikografiskt. Utdata börjar frÄn den första referensen som skulle komma efter markören alfabetiskt. Kan inte anvÀndas med alternativen --sort=<nyckel> eller --stdin, eller argumenten <mönster> för att begrÀnsa referenserna.

FÄLTNAMN

Olika vÀrden frÄn strukturerade fÀlt i refererade objekt kan anvÀndas för interpolering i resultatet eller som sorteringsnycklar.

För alla objekt kan följande namn anvÀndas:

refname

Namnet pÄ referensen (delen efter $GIT_DIR/). För ett entydigt kortnamn för referensen, lÀgg till :short. Alternativet core.warnAmbiguousRefs anvÀnds för att vÀlja strikt förkortningslÀge. Om lstrip=<n> (rstrip=<n>) lÀggs till tas <n> snedstrecksseparerade sökvÀgskomponenter bort frÄn början (slutet) av referensnamnet (t.ex. gör %(refname:lstrip=2) om refs/tags/foo till foo och %(refname:rstrip=2) gör om refs/tags/foo till refs). Om <n> Àr ett negativt tal tas sÄ mÄnga sökvÀgskomponenter bort som behövs frÄn angiven Ànde för att lÀmna -<n> sökvÀgskomponenter (t.ex. gör %(refname:lstrip=-2) om refs/tags/foo till tags/foo och %(refname:rstrip=-1) gör om refs/tags/foo till refs). NÀr referensen inte har tillrÀckligt mÄnga komponenter blir resultatet en tom strÀng vid borttagning med positivt <n>, eller hela referensnamnet vid borttagning med negativt <N>. Inget av detta Àr ett fel.

strip kan anvÀndas som synonym för lstrip.

objecttype

Objektets typ (blob, tree, commit, tag).

objectsize

Objektets storlek (samma som git cat-file -s rapporter). LĂ€gg till :disk för att fĂ„ storleken, i byte, som objektet tar upp pĂ„ disken. Se anmĂ€rkningen om storlekar pĂ„ disken i avsnittet FÖRBEHÅLL nedan.

objectname

Objektnamnet (Àven kallat SHA-1). För en entydig förkortning av objektnamnet, lÀgg till :short. För en förkortning med önskad lÀngd, lÀgg till :short=<lÀngd>, dÀr minsta lÀngd Àr MINIMUM_ABBREV. LÀngden kan överskridas för att sÀkerstÀlla unika objektnamn.

deltabase

Det hÀr expanderar till objektnamnet för deltbasen för det angivna objektet, om det lagras som en delta. Annars expanderar det till null-objektnamnet (bara nollor).

upstream

Namnet pĂ„ en lokal referens som kan betraktas som “upstream” för den visade referensen. Respekterar :short, :lstrip och :rstrip pĂ„ samma sĂ€tt som refname ovan. Respekterar Ă€ven :track för att visa "[ahead N, behind M]" och :trackshort för att visa den korta varianten: ">" (före), "<" (efter), "<>" (före och efter), eller "=" (i synk). :track skriver ocksĂ„ ut "[gone]" nĂ€r en okĂ€nd uppströmsreferens pĂ„trĂ€ffas. LĂ€gg till :track,nobracket för att visa spĂ„rningsinformation utan hakparenteser (d.v.s. "ahead N, behind M").

För varje fjÀrrspÄrad gren %(upstream) syftar %(upstream:remotename) respektive %(upstream:remoteref) pÄ namnet pÄ fjÀrren och namnet pÄ den spÄrade fjÀrrreferensen. Med andra ord kan den fjÀrrspÄrade grenen uppdateras explicit och individuellt genom att anvÀnda refspec %(upstream:remoteref):%(upstream) för att hÀmta frÄn %(upstream:remotename).

Har ingen effekt om referensen inte har associerad spÄrningsinformation. Alla alternativ utom nobracket Àr ömsesidigt uteslutande, men om de anvÀnds tillsammans vÀljs det sista alternativet.

push

Namnet pÄ en lokal referens som representerar @{push}-platsen för den visade referensen. Respekterar alternativen :short, :lstrip, :rstrip, :track, :trackshort, :remotename och :remoteref pÄ samma sÀtt som upstream. Ger en tom strÀng om ingen @{push}-referens Àr konfigurerad.

HEAD

* om HEAD matchar aktuell referens (den utcheckade grenen), annars ' '.

color

Ändra fĂ€rg pĂ„ utdata. Följs av :<fĂ€rgnamn>, dĂ€r fĂ€rgnamn beskrivs under Values i avsnittet "CONFIGURATION FILE" i git-config[1]. Till exempel %(color:bold red).

align

VÀnster-, mitten- eller högerjustera innehÄllet mellan %(align:...) och %(end). "align:" följs av width=<width> och position=<position> i valfri ordning separerade med kommatecken, dÀr <position> Àr left, right eller middle (standard Àr left) och <width> Àr innehÄllets totala lÀngd med justering. För korthet kan prefixen "width=" och/eller "position=" utelÀmnas, och bara <width> respektive <position> anvÀndas, t.ex. %(align:<width>,<position>). Om innehÄllets lÀngd Àr större Àn bredden görs ingen justering. Vid anvÀndning med --quote citeras allt mellan %(align:...) och %(end), men vid nÀstling citeras bara den översta nivÄn.

if

AnvÀnds som %(if)...%(then)...%(end) eller %(if)...%(then)...%(else)...%(end). Om det finns en atom med vÀrde eller strÀngliteral efter %(if) skrivs allt efter %(then) ut. Annars, om atomen %(else) anvÀnds, skrivs allt efter %(else) ut. Vi ignorerar blanksteg nÀr strÀngen före %(then) utvÀrderas; det Àr anvÀndbart nÀr vi anvÀnder atomen %(HEAD) som skriver ut antingen "*" eller " " och vi vill tillÀmpa if-villkoret endast pÄ HEAD-referensen. LÀgg till ":equals=<string>" eller ":notequals=<string>" för att jÀmföra vÀrdet mellan atomerna %(if:...) och %(then) med den angivna strÀngen.

symref

Referensen som den givna symboliska referensen pekar pÄ. Om det inte Àr en symbolisk referens skrivs inget ut. Respekterar alternativen :short, :lstrip och :rstrip pÄ samma sÀtt som refname ovan.

signature

GPG-signaturen för en incheckning.

signature:grade

Visa

G

för en bra (giltig) signatur

B

för en dÄlig signatur

U

för en bra signatur med okÀnd giltighet

X

för en bra signatur som har gÄtt ut

Y

för en bra signatur skapad av en nyckel som har gÄtt ut

R

för en bra signatur skapad av en Äterkallad nyckel

E

om signaturen inte kan kontrolleras (t.ex. saknad nyckel)

N

för ingen signatur.

signature:signer

Undertecknaren av GPG-signaturen för en incheckning.

signature:key

Nyckeln till GPG-signaturen för en incheckning.

signature:fingerprint

Fingeravtrycket för GPG-signaturen för en incheckning.

signature:primarykeyfingerprint

PrimÀrnyckelns fingeravtryck för GPG-signaturen för en incheckning.

signature:trustlevel

FörtroendenivÄn för GPG-signaturen för en incheckning. Möjliga utdata Àr ultimate, fully, marginal, never och undefined.

worktreepath

Den absoluta sökvÀgen till arbetstrÀdet dÀr referensen Àr utcheckad, om den Àr utcheckad i nÄgot lÀnkat arbetstrÀd. Annars tom strÀng.

ahead-behind:<commit-ish>

TvÄ heltal, separerade med blanksteg, som visar antalet incheckningar före respektive efter nÀr utdatareferensen jÀmförs med <committish> som anges i formatet.

is-base:<commit-ish>

I högst en rad visas (<commit-ish>) för att ange den referens som mest sannolikt anvÀndes som startpunkt för grenen som skapade <commit-ish>. Valet görs med en heuristik: vÀlj den referens som minimerar antalet incheckningar i förstaförÀldrahistoriken för <commit-ish> som inte finns i referensens förstaförÀldrahistorik.

TÀnk till exempel pÄ följande figur över förstaförÀldrahistoriker för flera referenser:

*--*--*--*--*--* refs/heads/A
\
 \
  *--*--*--* refs/heads/B
   \     \
    \     \
     *     * refs/heads/C
      \
       \
	*--* refs/heads/D

Om A, B och C hÀr Àr de filtrerade referenserna och formatstrÀngen Àr %(refname):%(is-base:D), blir utdatan

refs/heads/A:
refs/heads/B:(D)
refs/heads/C:

Det hÀr beror pÄ att förstaförÀldrahistoriken för D fÄr sin tidigaste skÀrning med förstaförÀldrahistorikerna för de filtrerade referenserna i en gemensam förstaförfader till B och C, och lika fall avgörs av den tidigaste referensen i sorteringsordningen.

Observera att denna markör inte visas om förstaförÀldrahistoriken för <commit-ish> inte skÀr förstaförÀldrahistorikerna för de filtrerade referenserna.

describe[:<option>,...]

Ett mÀnniskolÀsbart namn, som git-describe[1]; tom strÀng för obeskrivbara incheckningar. StrÀngen describe kan följas av ett kolon och ett eller flera kommaseparerade alternativ.

tags=<bool-value>

I stÀllet för att bara ta hÀnsyn till annoterade taggar, ta Àven hÀnsyn till lÀttviktiga taggar; se motsvarande alternativ i git-describe[1] för detaljer.

abbrev=<number>

AnvÀnd minst <number> hexadecimala siffror; se motsvarande alternativ i git-describe[1] för detaljer.

match=<mönster>

Ta bara hÀnsyn till taggar som matchar glob(7)-<pattern>, exklusive prefixet refs/tags/; se motsvarande alternativ i git-describe[1] för detaljer.

exclude=<mönster>

Ta inte hÀnsyn till taggar som matchar glob(7)-<mönster>, exklusive prefixet refs/tags/; se motsvarande alternativ i git-describe[1] för detaljer.

Utöver ovanstÄende kan, för inchecknings- och taggobjekt, huvudfÀltsnamnen (tree, parent, object, type och tag) anvÀndas för att ange vÀrdet i huvudfÀltet. FÀlten tree och parent kan ocksÄ anvÀndas med modifieraren :short och :short=<length> precis som objectname.

För inchecknings- och taggobjekt motsvarar specialfÀlten creatordate och creator lÀmpligt datum eller namn-e-post-datum-tupel frÄn fÀlten committer eller tagger, beroende pÄ objekttyp. Dessa Àr avsedda för arbete med en blandning av annoterade och lÀttviktiga taggar.

För taggobjekt expanderas ett fieldname med prefixet * till fieldname-vÀrdet för det skalade objektet, snarare Àn till sjÀlva taggobjektet.

FÀlt som har en namn-e-post-datum-tupel som vÀrde (author, committer och tagger) kan fÄ suffixen name, email och date för att extrahera den namngivna komponenten. För e-postfÀlt (authoremail, committeremail och taggeremail) kan :trim lÀggas till för att fÄ e-postadressen utan vinkelparenteser, och :localpart för att fÄ delen före @-symbolen i den trimmade e-postadressen. Utöver detta kan alternativet :mailmap samt motsvarande :mailmap,trim och :mailmap,localpart anvÀndas (ordningen spelar ingen roll) för att hÀmta namn- och e-postvÀrden enligt .mailmap-filen eller enligt filen som anges i konfigurationsvariabeln mailmap.file eller mailmap.blob (se gitmailmap[5]).

RÄdata i ett objekt Àr raw.

raw:size

Storleken pÄ objektets rÄdata.

Observera att --format=%(raw) inte kan anvÀndas med --python, --shell, --tcl, eftersom sÄdana sprÄk kanske inte stöder godtycklig binÀrdata i sina strÀngvariabeltyper.

Meddelandet i en incheckning eller ett taggobjekt Àr contents, dÀr contents:<part> kan anvÀndas för att extrahera olika delar:

contents:size

Storleken i byte för inchecknings- eller taggmeddelandet.

contents:subject

Det första stycket i meddelandet, som vanligtvis Àr en enda rad, tas som "Àmne" för inchecknings- eller taggmeddelandet. I stÀllet för contents:subject kan fÀltet subject ocksÄ anvÀndas för att fÄ samma resultat. :sanitize kan lÀggas till i subject för en Àmnesrad som passar filnamnet.

contents:body

Resten av inchecknings- eller taggmeddelandet som följer efter "subject".

contents:signature

Taggens valfria GPG-signatur.

contents:lines=<n>

Meddelandets första <n> rader.

Dessutom hÀmtas trailers, sÄ som de tolkas av git-interpret-trailers[1], som trailers[:<option>,...] (eller med det historiska aliaset contents:trailers[:<option>,...]). Giltiga <option>-vÀrden finns i avsnittet trailers i git-log[1].

För sorteringsÀndamÄl sorteras fÀlt med numeriska vÀrden i numerisk ordning (objectsize, authordate, committerdate, creatordate, taggerdate). Alla andra fÀlt anvÀnds för sortering enligt sin bytevÀrdesordning.

Det finns ocksÄ ett alternativ för att sortera efter versioner; det kan göras med fÀltnamnet version:refname eller aliaset v:refname.

I samtliga fall orsakar ett fÀltnamn som syftar pÄ ett fÀlt som inte Àr tillÀmpligt för objektet som referensen pekar pÄ inget fel. Det returnerar i stÀllet en tom strÀng.

Som specialfall för datumfÀlten kan du ange ett datumformat genom att lÀgga till : följt av datumformatets namn (se vilka vÀrden alternativet --date till git-rev-list[1] accepterar). Om detta format anges i en --sort-nyckel sorteras referenser enligt det formaterade strÀngvÀrdets byteordning, inte efter det underliggande tidsstÀmpelvÀrdets numeriska vÀrde.

Vissa atomer, som %(align) och %(if), krÀver alltid ett matchande %(end). Vi kallar dem "öppnande atomer" och betecknar dem ibland som %($open).

NÀr citering specifik för ett skriptsprÄk Àr aktiv utvÀrderas allt mellan en öppnande atom pÄ toppnivÄ och dess matchande %(end) enligt den öppnande atomens semantik, och endast resultatet frÄn toppnivÄn citeras.

EXEMPEL

Ett exempel som direkt producerar formaterad text. Visa de tre senaste taggade incheckningarna:

#!/bin/sh

git for-each-ref --count=3 --sort='-*authordate' \
`--format='From: %(*authorname) %(*authoremail)
Subject: %(*subject)
Date: %(*authordate)
Ref: %(*refname)

%(*body)
' 'refs/tags'

Ett enkelt exempel som visar anvÀndning av eval i skalet pÄ utdatan och demonstrerar --shell. Lista prefixen för alla HEAD-referenser:

#!/bin/sh

git for-each-ref --shell --format="ref=%(refname)" refs/heads | \
while read entry
do
	eval "$entry"
	echo `dirname $ref`
done

En nÄgot mer omfattande rapport om taggar, som visar att formatet kan vara ett helt skript:

#!/bin/sh

fmt='
	r=%(refname)
	t=%(*objecttype)
	T=${r#refs/tags/}

	o=%(*objectname)
	n=%(*authorname)
	e=%(*authoremail)
	s=%(*subject)
	d=%(*authordate)
	b=%(*body)

	kind=Tag
	if test "z$t" = z
	then
		# could be a lightweight tag
		t=%(objecttype)
		kind="Lightweight tag"
		o=%(objectname)
		n=%(authorname)
		e=%(authoremail)
		s=%(subject)
		d=%(authordate)
		b=%(body)
	fi
	echo "$kind $T points at a $t object $o"
	if test "z$t" = zcommit
	then
		echo "The commit was authored by $n $e
at $d, and titled

    $s

Its message reads as:
"
		echo "$b" | sed -e "s/^/    /"
		echo
	fi
'

eval=`git for-each-ref --shell --format="$fmt" \
	--sort='*objecttype' \
	--sort=-taggerdate \
	refs/tags`
eval "$eval"

Ett exempel som visar anvÀndningen av %(if)...%(then)...%(else)...%(end). Detta prefixerar den aktuella grenen med en stjÀrna.

git for-each-ref --format="%(if)%(HEAD)%(then)* %(else)  %(end)%(refname:short)" refs/heads/

Ett exempel som visar anvÀndningen av %(if)...%(then)...%(end). Detta skriver ut författarnamnet, om det finns.

git for-each-ref --format="%(refname)%(if)%(authorname)%(then) Authored by: %(authorname)%(end)"

FÖRBEHÅLL

Observera att storlekarna pÄ objekten pÄ disken rapporteras korrekt, men försiktighet bör iakttas nÀr man drar slutsatser om vilka referenser eller objekt som Àr ansvariga för diskanvÀndningen. Storleken pÄ ett packat icke-deltaobjekt kan vara mycket större Àn storleken pÄ objekt som deltar mot det, men valet av vilket objekt som Àr basen och vilket som Àr deltan Àr godtyckligt och kan Àndras under en ompackning.

Observera ocksÄ att flera kopior av ett objekt kan finnas i objektdatabasen; i det hÀr fallet Àr det odefinierat vilken kopias storlek eller deltabas som kommer att rapporteras.

NOTERINGAR

NÀr man kombinerar flera --contains- och --no-contains-filter visas endast referenser som innehÄller minst en av --contains-commits och inte innehÄller nÄgon av --no-contains-incheckningar.

NÀr man kombinerar flera --merged- och --no-merged-filter visas endast referenser som Àr nÄbara frÄn minst en av --merged-commits och frÄn ingen av --no-merged-incheckningar.

SE ÄVEN

GIT

En del av git[1]-sviten