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.53.0 â 2.54.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.46.2 â 2.49.1 no changes
-
2.46.1
2024-09-13
- 2.42.2 â 2.46.0 no changes
-
2.42.1
2023-11-02
-
2.42.0
2023-08-21
- 2.40.1 â 2.41.3 no changes
-
2.40.0
2023-03-12
- 2.38.1 â 2.39.5 no changes
-
2.38.0
2022-10-02
- 2.36.1 â 2.37.7 no changes
-
2.36.0
2022-04-18
- 2.34.1 â 2.35.8 no changes
-
2.34.0
2021-11-15
- 2.32.1 â 2.33.8 no changes
-
2.32.0
2021-06-06
- 2.28.1 â 2.31.8 no changes
-
2.28.0
2020-07-27
- 2.21.1 â 2.27.1 no changes
-
2.21.0
2019-02-24
- 2.19.1 â 2.20.5 no changes
-
2.19.0
2018-09-10
- 2.17.0 â 2.18.5 no changes
-
2.16.6
2019-12-06
- 2.15.4 no changes
-
2.14.6
2019-12-06
- 2.12.5 â 2.13.7 no changes
-
2.11.4
2017-09-22
- 2.10.5 no changes
-
2.9.5
2017-07-30
- 2.7.6 â 2.8.6 no changes
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
- 2.1.4 â 2.4.12 no changes
-
2.0.5
2014-12-17
SYNOPSIS
git cat-file <typ> <objekt> git cat-file (-e | -p | -t | -s) <objekt> git cat-file (--textconv | --filters) [<rev>:<sökvÀg|trÀdlikt> | --path=<sökvÀg|trÀdlikt> <rev>] git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects] [--buffer] [--follow-symlinks] [--unordered] [--textconv | --filters] [-Z]
BESKRIVNING
Mata ut innehÄllet eller andra egenskaper, sÄsom storlek, typ eller delta-information, för ett eller flera objekt.
Kommandot kan fungera i tvÄ lÀgen, beroende pÄ om ett alternativ frÄn --batch-familjen har angetts.
I icke-satslÀge tillhandahÄller kommandot information om ett objekt som namnges pÄ kommandoraden.
I satslÀge lÀses argument frÄn standardindata.
ALTERNATIV
- <objekt>
-
Namnet pÄ det objekt som ska visas. För en mer komplett lista över sÀtt att stava objektnamn, se avsnittet "SPECIFICERING AV REVISIONER" i gitrevisions[7].
- -t
-
I stÀllet för innehÄllet, visa objekttypen som identifieras av <objekt>.
- -s
-
I stÀllet för innehÄllet, visa objektstorleken identifierad av <objekt>. Om den anvÀnds med alternativet
--use-mailmap, visas storleken pÄ det uppdaterade objektet efter att identer ersatts med hjÀlp av mailmap-mekanismen. - -e
-
Avsluta med status noll om <objekt> finns och Àr ett giltigt objekt. Om <objekt> har ett ogiltigt format, avsluta med status som inte Àr noll och generera ett felmeddelande vid stderr.
- -p
-
Skriv ut innehÄllet i <objekt> baserat pÄ dess typ.
- <typ>
-
Vanligtvis matchar detta den verkliga typen av <objekt>, men det Àr ocksÄ tillÄtet att frÄga efter en typ som trivialt kan avrefereras frÄn den givna <objekt>. Ett exempel Àr att frÄga efter ett "trÀd" dÀr <objekt> Àr ett incheckningsobjekt som innehÄller det, eller att frÄga efter en "blob" dÀr <objekt> Àr ett taggobjekt som pekar pÄ det.
- --mailmap
- --no-mailmap
- --use-mailmap
- --no-use-mailmap
-
AnvÀnd mailmap-filen för att mappa författar-, incheckare- och taggarnamn och e-postadresser till kanoniska riktiga namn och e-postadresser. Se git-shortlog[1].
- --textconv
-
Visa innehÄllet sÄ som det har transformerats av ett textconv filtret. I det hÀr fallet mÄste <objekt> ha formen <trÀdlikt>
:<sökvÀg> eller:<sökvÀg> för att filtret ska kunna tillÀmpas pÄ innehÄllet som Àr registrerat i indexet vid <sökvÀg>. - --filters
-
Visa innehÄllet sÄ som det konverterats av filtren som konfigurerats i det aktuella arbetstrÀdet för den angivna <sökvÀgen> (d.v.s. smudge-filter, konvertering vid radslut, etc.). I det hÀr fallet mÄste <objekt> vara av formen <trÀdlikt>
:<sökvÀg> eller:<sökvÀg>. - --filter=<filter-spec>
- --no-filter
-
Uteslut objekt frÄn listan över utskrivna objekt. Detta kan bara anvÀndas i kombination med ett av satslÀgena. Undantagna objekt som uttryckligen har begÀrts via nÄgot av satslÀgena som lÀser objekt via standardinmatning (
--batch,--batch-check) kommer att rapporteras som "filtrerade". Undantagna objekt i--batch-all-objects-lÀge kommer inte att skrivas ut alls. <filter-spec> kan vara ett av följande:Formen --filter=blob:none utelÀmnar alla blobbar.
Formen --filter=blob:limit=<n>[kmg] utelÀmnar blobbar med en storlek pÄ minst n byte eller enheter. n kan vara noll. Suffixen k, m och g kan anvÀndas för att namnge enheter i KiB, MiB eller GiB. Till exempel Àr blob:limit=1k samma sak som blob:limit=1024.
Formen --filter=object:type=(tag|commit|tree|blob) utelÀmnar alla objekt som inte Àr av den begÀrda typen.
- --path=<sökvÀg>
-
För anvÀndning med
--textconveller--filters, för att tillÄta att ett objektnamn och en sökvÀg anges separat, t.ex. nÀr det Àr svÄrt att lista ut vilken version blobben kommer frÄn. - --batch
- --batch=<format>
-
Skriv ut objektinformation och innehÄll för varje objekt som anges pÄ stdin. FÄr inte kombineras med andra alternativ eller argument förutom
--textconv,--filterseller--use-mailmap.-
NÀr det anvÀnds med
--textconveller--filtersmÄste inmatningsraderna ange sökvÀgen, separerade med blanktecken. Se avsnittetSATSUTMATNINGnedan för mer information. -
NÀr det anvÀnds med
--use-mailmap, för incheckning- och tagg-objekt, visar innehÄllsdelen av utdata de identiteter som ersatts med mailmap-mekanismen, medan informationsdelen av utdata visar objektets storlek som om det faktiskt registrerade ersÀttningsidentiteterna.
-
- --batch-check
- --batch-check=<format>
-
Skriv ut objektinformation för varje objekt som anges pÄ stdin. FÄr inte kombineras med andra alternativ eller argument förutom
--textconv,--filterseller--use-mailmap.-
NÀr det anvÀnds med
--textconveller--filtersmÄste inmatningsraderna ange sökvÀgen, separerad med blanktecken. Se avsnittetSATSUTMATNINGnedan för mer information. -
NÀr det anvÀnds med
--use-mailmap, för incheckning- och tagg-objekt, visar den utskrivna objektinformationen objektets storlek som om identiteterna som registrerats i det ersattes av mailmap-mekanismen.
-
- --batch-command
- --batch-command=<format>
-
Ange ett kommandolÀge som lÀser kommandon och argument frÄn stdin. FÄr endast kombineras med
--buffer,--textconv,--use-mailmapeller--filters.-
NÀr det anvÀnds med
--textconveller--filtersmÄste inmatningsraderna ange sökvÀgen, separerade med blanktecken. Se avsnittetSATSUTMATNINGnedan för mer information. -
NÀr det anvÀnds med
--use-mailmap, för incheckning- och tagg-objekt, visar kommandotcontentsde identiteter som ersatts med mailmap-mekanismen, medan kommandotinfovisar objektets storlek som om det faktiskt registrerade ersÀttningsidentiteterna.
--batch-commandkÀnner igen följande kommandon:- contents <objekt>
-
Skriv ut objektinnehÄllet för objektreferensen <objekt>. Detta motsvarar utdata frÄn
--batch. - info <objekt>
-
Skriv ut objektinformation för objektreferensen <objekt>. Detta motsvarar utdata frÄn
--batch-check. - flush
-
AnvÀnds med
--bufferför att utföra alla föregÄende kommandon som utfÀrdats sedan början eller sedan den senaste spolningen utfördes. NÀr--bufferanvÀnds kommer ingen utmatning förrÀn enflushutförs. NÀr--bufferinte anvÀnds spolas kommandona varje gÄng utan attflushutförs.
-
- --batch-all-objects
-
I stÀllet för att lÀsa en lista med objekt pÄ stdin, utför den begÀrda sats-operationen pÄ alla objekt i kodförrÄdet och eventuella alternativa objektlager (inte bara nÄbara objekt). KrÀver att
--batcheller--batch-checkanges. Som standard besöks objekten i ordning sorterade efter deras hash-vÀrden; se Àven--unorderednedan. Objekt presenteras som de Àr, utan att respektera "replace"-mekanismen i git-replace[1]. - --buffer
-
Normalt sett rensas satsutdata efter att varje objekt har matats ut, sÄ att en process interaktivt kan lÀsa och skriva frÄn
cat-file. Med det hÀr alternativet anvÀnder utdata normal stdio-buffring; detta Àr mycket effektivare nÀr--batch-checkeller--batch-commandanropas pÄ ett stort antal objekt. - --unordered
-
NĂ€r
--batch-all-objectsanvÀnds, besök objekt i en ordning som kan vara mer effektiv för att komma Ät objektinnehÄllet Àn hashordning. De exakta detaljerna i ordningen Àr inte angivna, men om en specifik ordning inte behövs ordning bör detta generellt resultera i snabbare utdata, sÀrskilt med--batch. Observera attcat-filefortfarande bara visar varje objekt en gÄng, Àven om det lagras flera gÄnger i kodförrÄdet. - --follow-symlinks
-
Med
--batcheller--batch-checkföljs symboliska lÀnkar inuti kodförrÄdet nÀr objekt begÀrs med utökade SHA-1-uttryck av formen tree-ish:path-in-tree. I stÀllet för att tillhandahÄlla utdata om sjÀlva lÀnken ges utdata om det lÀnkade objektet. Om en symbolisk lÀnk pekar utanför trÀdet (t.ex. en lÀnk till/fooeller en rotnivÄlÀnk till../foo), kommer den del av lÀnken som finns utanför trÀdet att skrivas ut.Det hÀr alternativet fungerar (för nÀrvarande) inte korrekt nÀr ett objekt i indexet anges (t.ex.
:linki stÀllet förHEAD:link) snarare Àn ett i trÀdet.Det hÀr alternativet kan (för nÀrvarande) inte anvÀndas om inte
--batcheller--batch-checkanvÀnds.Anta till exempel ett Git-kodförrÄd som innehÄller:
f: en fil som innehÄller "hej\n" lÀnk: en symlink till f kat/lÀnk: en symlink till../f plÀnk: en symlink till../f alÀnk: en symlink till /etc/passwd
För en vanlig fil
fskulleechoHEAD:f|gitcat-file--batchskriva utce013625030ba8dba906f756967f9e9ca394464a blob 6
Och
echoHEAD:link|gitcat-file--batch--follow-symlinksskulle skriva ut samma sak, liksom HEAD:kat/lÀnk, eftersom bÄda pekar pÄHEAD:f.Utan
--follow-symlinksskulle dessa skriva ut data om sjÀlva symboliska lÀnken. I fallet med HEAD:lÀnk skulle du se4d1ae35ba2c8ec712fa2a379db44ad639ca277bd blob 1
BÄde plÀnk och alÀnk pekar utanför trÀdet, sÄ de skulle skriva ut:
symlink 4 ../f
symlink 11 /etc/passwd
- -Z
-
Endast meningsfullt med
--batch,--batch-checkeller--batch-command; indata och utdata Àr NUL-avgrÀnsade i stÀllet för nyradsavgrÀnsade. - -z
-
Endast meningsfullt med
--batch,--batch-checkeller--batch-command; inmatningen Àr NUL-avgrÀnsad i stÀllet för nyradsavgrÀnsad. Detta alternativ Àr förÄldrat till förmÄn för-Zeftersom utmatningen annars kan vara tvetydig.
UTMATNING
Om -t anges, en av <typ>.
Om -s anges, storleken pÄ <objekt> i byte.
Om -e anges, ingen utdata, sÄvida inte <objekt> Àr felaktigt formaterat.
Om -p anges, skrivs innehÄllet i <objekt> snyggt formaterat.
Om <typ> anges, returneras det rÄa (men okomprimerade) innehÄllet i <objekt>.
SATS UTMATNING
Om --batch eller --batch-check anges kommer cat-file att lÀsa objekt frÄn stdin, ett per rad, och skriva ut information om dem i samma ordning som de har lÀsts. Som standard betraktas hela raden som ett objekt, som om den matades till git-rev-parse[1].
NÀr --batch-command ges, kommer cat-file att lÀsa kommandon frÄn stdin, ett per rad, och skriva ut information baserat pÄ det givna kommandot. Med --batch-command kommer info-kommandot följt av ett objekt att skriva ut information om objektet pÄ samma sÀtt som --batch-check skulle göra, och contents-kommandot följt av ett objekt skriver ut innehÄllet pÄ samma sÀtt som --batch skulle göra.
Du kan ange informationen som visas för varje objekt genom att anvÀnda ett anpassat <format>. <format> kopieras bokstavligen till stdout för varje objekt, med platshÄllare av formen %(atom) expanderade, följt av en nyrad. De tillgÀngliga atomerna Àr:
-
objectname -
Den fullstÀndiga hexadecimala representationen av objektnamnet.
-
objecttype -
Objektets typ (samma som
cat-file-trapporterar). -
objectmode -
Om det angivna objektet har lÀgesinformation (t.ex. ett trÀd eller en indexpost), uttrycks lÀget som ett oktalt heltal. Annars en tom strÀng.
-
objectsize -
Objektets storlek, i byte, (samma som
cat-file-srapporterar). -
objectsize:disk -
Storleken, i byte, som objektet tar upp pĂ„ disken. Se anmĂ€rkningen om storlekar pĂ„ disken i avsnittet "FĂRBEHĂ LL" nedan.
-
deltabase -
Om objektet lagras som en delta pĂ„ disk, expanderas detta till den fullstĂ€ndiga hexadecimala representationen av deltabasobjektets namn. Annars expanderas det till null-OID (bara nollor). Se FĂRBEHĂ LL nedan.
-
rest -
Om denna atom anvÀnds i utdatastrÀngen delas indatalinjerna vid den första blankstegsgrÀnsen. Alla tecken före det blanksteget anses vara objektnamnet; tecken efter den första följden av blanksteg (d.v.s. "resten" av raden) matas ut i stÀllet för
%(rest)-atomen.
Om inget format anges, Àr standardformatet %(objectname) %(objecttype) %(objectsize).
Om --batch anges, eller om --batch-command anvÀnds med kommandot contents, följs objektinformationen av objektinnehÄllet (bestÄende av %(objectsize) byte), följt av en ny rad.
Till exempel skulle --batch utan ett anpassat format producera:
<oid> SP <typ> SP <storlek> LF <innehÄll> LF
Medan --batch-check='%(objectname) %(objecttype) skulle producera:
<oid> SP <typ> LF
Om ett namn anges pÄ stdin som inte kan matchas med ett objekt i kodförrÄdet, kommer cat-file att ignorera alla anpassade format och skriva ut:
<objekt> SP missing LF
Om ett namn anges pÄ stdin som filtreras bort via --filter=, sÄ kommer cat-file att ignorera alla anpassade format och skriva ut:
<objekt> SP excluded LF
Om ett namn anges som kan referera till mer Àn ett objekt (en tvetydig kort sha), kommer cat-file att ignorera alla anpassade format och skriva ut:
<objekt> SP ambiguous LF
Om ett namn anges som refererar till en undermodulpost i ett trÀd och mÄlobjektet inte finns i kodförrÄdet, kommer cat-file att ignorera alla anpassade format och skriva ut (med undermodulens objekt-ID):
<oid> SP submodule LF
Om --follow-symlinks anvÀnds, och en symlÀnk i kodförrÄdet pekar utanför kodförrÄdet, sÄ kommer cat-file att ignorera alla anpassade format och skriva ut:
symlink SP <storlek> LF <symlÀnk> LF
SymbollÀnken kommer antingen att vara absolut (börjar med ett /) eller relativ till trÀdroten. Om till exempel dir/link pekar pÄ ../../foo, sÄ kommer <symlÀnk> att vara ../foo. <storlek> Àr storleken pÄ symbollÀnken i byte.
Om --follow-symlinks anvÀnds kommer följande felmeddelanden att visas:
<objekt> SP missing LF
skrivs ut nÀr den initialt begÀrda symboliska lÀnken inte finns.
dangling SP <storlek> LF
<objekt> LF
skrivs ut nÀr den initiala symboliska lÀnken finns, men nÄgot som den (transitivt-av) pekar pÄ inte gör det.
loop SP <storlek> LF
<objekt> LF
skrivs ut för symlÀnkslingor (eller andra symlÀnkar som krÀver mer Àn 40 lÀnkupplösningar för att lösas).
notdir SP <storlek> LF
<objekt> LF
skrivs ut nÀr en fil anvÀnds som katalognamn under symlÀnksupplösning.
Alternativt, nÀr -Z skickas, ersÀtts radmatningarna i nÄgot av exemplen ovan med NUL-terminatorer. Detta sÀkerstÀller att utdata kommer att vara parsbar om sjÀlva utdata skulle innehÄlla en radmatning och dÀrför rekommenderas för skriptÀndamÄl.
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.
GIT
En del av git[1]-sviten