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 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.
Det här kommandot kan fungera i två lägen, beroende på om ett alternativ från --batch-familjen är specificerat.
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
-
Istället för innehållet, visa objekttypen som identifieras av <objekt>.
- -s
-
Istä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 incheckning-objekt 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 den aktuella arbetskatalogen för det givna <sökvägen> (dvs. smetfilter, 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
-
Istället för att läsa en lista med objekt på stdin, utför den begärda sats-operationen på alla objekt i förvaret 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 ospecificerade, men om du inte behöver en specifik 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 arkivet. - --follow-symlinks
-
Med
--batcheller--batch-check, följ symboliska länkar inuti förvaret när du begär objekt med utökade SHA-1-uttryck av formen tree-ish:path-in-tree. Istället för att tillhandahålla utdata om själva länken, tillhandahålla 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.
:linkistä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.Tänk dig till exempel ett git-förvar 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 istället för nyradsavgränsade. - -z
-
Endast meningsfullt med
--batch,--batch-checkeller--batch-command; inmatningen är NUL-avgränsad istä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 mellanslaget anses vara objektnamnet; Tecken efter den första omgången av blanksteg (dvs. "resten" av raden) matas ut istället för
%(rest)-atomen.
If no format is specified, the default format is %(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 förvaret, 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 förvaret, 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 arkivet pekar utanför arkivet, 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
Note that the sizes of objects on disk are reported accurately, but care should be taken in drawing conclusions about which refs or objects are responsible for disk usage. The size of a packed non-delta object may be much larger than the size of objects which delta against it, but the choice of which object is the base and which is the delta is arbitrary and is subject to change during a repack.
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