Svenska â–Ÿ Topics â–Ÿ Latest version â–Ÿ git-cat-file last updated in 2.52.0

NAMN

git-cat-file - TillhandahÄller innehÄll eller detaljer om kodförrÄds-objekt

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 --textconv eller --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, --filters eller --use-mailmap.

  • NĂ€r det anvĂ€nds med --textconv eller --filters mĂ„ste inmatningsraderna ange sökvĂ€gen, separerade med blanktecken. Se avsnittet SATS UTMATNING nedan 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, --filters eller --use-mailmap.

  • NĂ€r det anvĂ€nds med --textconv eller --filters mĂ„ste inmatningsraderna ange sökvĂ€gen, separerad med blanktecken. Se avsnittet SATS UTMATNING nedan 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-mailmap eller --filters.

  • NĂ€r det anvĂ€nds med --textconv eller --filters mĂ„ste inmatningsraderna ange sökvĂ€gen, separerade med blanktecken. Se avsnittet SATS UTMATNING nedan för mer information.

  • NĂ€r det anvĂ€nds med --use-mailmap, för incheckning- och tagg-objekt, visar kommandot contents de identiteter som ersatts med mailmap-mekanismen, medan kommandot info visar objektets storlek som om det faktiskt registrerade ersĂ€ttningsidentiteterna.

--batch-command kÀ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 --buffer för att utföra alla föregÄende kommandon som utfÀrdats sedan början eller sedan den senaste spolningen utfördes. NÀr --buffer anvÀnds kommer ingen utmatning förrÀn en flush utförs. NÀr --buffer inte anvÀnds spolas kommandona varje gÄng utan att flush utfö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 --batch eller --batch-check anges. Som standard besöks objekten i ordning sorterade efter deras hash-vÀrden; se Àven --unordered nedan. 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-check eller --batch-command anropas pÄ ett stort antal objekt.

--unordered

NÀr --batch-all-objects anvÀ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 att cat-file fortfarande bara visar varje objekt en gÄng, Àven om det lagras flera gÄnger i kodförrÄdet.

Med --batch eller --batch-check fö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 /foo eller 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. :link i stÀllet för HEAD:link) snarare Àn ett i trÀdet.

Det hÀr alternativet kan (för nÀrvarande) inte anvÀndas om inte --batch eller --batch-check anvÀ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 f skulle echo HEAD:f | git cat-file --batch skriva ut

ce013625030ba8dba906f756967f9e9ca394464a blob 6

Och echo HEAD:link | git cat-file --batch --follow-symlinks skulle skriva ut samma sak, liksom HEAD:kat/lÀnk, eftersom bÄda pekar pÄ HEAD:f.

Utan --follow-symlinks skulle dessa skriva ut data om sjÀlva symboliska lÀnken. I fallet med HEAD:lÀnk skulle du se

4d1ae35ba2c8ec712fa2a379db44ad639ca277bd 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-check eller --batch-command; indata och utdata Àr NUL-avgrÀnsade i stÀllet för nyradsavgrÀnsade.

-z

Endast meningsfullt med --batch, --batch-check eller --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 -Z eftersom 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 -t rapporterar).

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 -s rapporterar).

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