Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
-
2.54.0
2026-04-20
- 2.53.0 no changes
-
2.52.0
2025-11-17
- 2.51.1 â 2.51.2 no changes
-
2.51.0
2025-08-18
- 2.50.1 no changes
-
2.50.0
2025-06-16
- 2.47.1 â 2.49.1 no changes
-
2.47.0
2024-10-06
- 2.45.1 â 2.46.4 no changes
-
2.45.0
2024-04-29
- 2.44.1 â 2.44.4 no changes
-
2.44.0
2024-02-23
- 2.43.1 â 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.42.1 â 2.42.4 no changes
-
2.42.0
2023-08-21
- 2.41.1 â 2.41.3 no changes
-
2.41.0
2023-06-01
- 2.34.1 â 2.40.4 no changes
-
2.34.0
2021-11-15
- 2.31.1 â 2.33.8 no changes
-
2.31.0
2021-03-15
- 2.29.1 â 2.30.9 no changes
-
2.29.0
2020-10-19
- 2.23.1 â 2.28.1 no changes
-
2.23.0
2019-08-16
- 2.21.1 â 2.22.5 no changes
-
2.21.0
2019-02-24
- 2.19.1 â 2.20.5 no changes
-
2.19.0
2018-09-10
- 2.18.1 â 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.0 â 2.17.6 no changes
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
- 2.10.5 â 2.11.4 no changes
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
-
2.7.6
2017-07-30
- 2.6.7 no changes
-
2.5.6
2017-05-05
- 2.1.4 â 2.4.12 no changes
-
2.0.5
2014-12-17
SYNOPSIS
gitfor-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Àndsrefname. 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ÀrxxÀr hexadecimalsiffror - Äterges som tecknet med hexadecimalkodenxx. Till exempel interpolerar%00till \0 (NUL),%09till \t (TAB) och%0atill \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 avalways,neverellerauto(om <nÀr> saknas, bete sig som omalwayshade 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 (
HEADom inget annat anges). -
--no-merged[=<objekt>] -
Lista endast referenser vars toppar inte kan nÄs frÄn <objekt>(
HEADom inget anges). -
--contains[=<objekt>] -
Lista endast referenser som innehÄller <objkct>(
HEADom inget anges). -
--no-contains[=<objekt>] -
Lista endast referenser som inte innehÄller <objekt> (
HEADom 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 (
HEADoch 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. Alternativetcore.warnAmbiguousRefsanvÀnds för att vÀlja strikt förkortningslÀge. Omlstrip=<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) omrefs/tags/footillfoooch%(refname:rstrip=2) gör omrefs/tags/footillrefs). 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) omrefs/tags/footilltags/foooch%(refname:rstrip=-1) gör omrefs/tags/footillrefs). 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.stripkan anvÀndas som synonym förlstrip. -
objecttype -
Objektets typ (
blob,tree,commit,tag). -
objectsize -
Objektets storlek (samma som git cat-file -s rapporter). LĂ€gg till
:diskfö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 ÀrMINIMUM_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,:lstripoch:rstrippÄ samma sÀtt somrefnameovan. Respekterar Àven:trackför att visa "[ahead N, behind M]" och:trackshortför att visa den korta varianten: ">" (före), "<" (efter), "<>" (före och efter), eller "=" (i synk).:trackskriver ocksÄ ut "[gone]" nÀr en okÀnd uppströmsreferens pÄtrÀffas. LÀgg till:track,nobracketfö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,:remotenameoch:remoterefpÄ samma sÀtt somupstream. Ger en tom strÀng om ingen@{push}-referens Àr konfigurerad. -
HEAD -
*omHEADmatchar 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:boldred). -
align -
VÀnster-, mitten- eller högerjustera innehÄllet mellan
%(align:...) och%(end). "align:" följs avwidth=<width> ochposition=<position> i valfri ordning separerade med kommatecken, dÀr <position> Àrleft,rightellermiddle(standard Àrleft) 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--quoteciteras 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,:lstripoch:rstrippÄ samma sÀtt somrefnameovan. -
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,neverochundefined. -
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/DOm
A,BochChÀr Àr de filtrerade referenserna och formatstrÀngen Àr%(refname):%(is-base:D), blir utdatanrefs/heads/A: refs/heads/B:(D) refs/heads/C:
Det hÀr beror pÄ att förstaförÀldrahistoriken för
DfÄr sin tidigaste skÀrning med förstaförÀldrahistorikerna för de filtrerade referenserna i en gemensam förstaförfader tillBochC, 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
describekan 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 prefixetrefs/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 prefixetrefs/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.
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:subjectkan fÀltetsubjectocksÄ anvÀndas för att fÄ samma resultat.:sanitizekan lÀggas till isubjectfö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.
GIT
En del av git[1]-sviten