git-cat-file(1): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '{{manpage|section=1|title=git-cat-file}} == NAMN == git-cat-file - Tillhandahåll innehåll eller detaljer om arkivobjekt == SYNOPSIS == '''git cat-file''' <typ> <objekt> '''git cat-file''' (-e | -p) <objekt> '''git cat-file''' (-t | -s) [--allow-unknown-type] <objekt> '''git cat-file''' (--textconv | --filters) [<rev>:<sökväg|träd-ish> | --path=<sökväg|träd-ish> <rev>] '''git cat-file''' (--batch | --batch-check | --batch-command) [--batch-all-objec...')
 
 
Rad 29: Rad 29:
* <objekt>
* <objekt>
:: Namnet på objektet som ska visas. För en mer fullständig lista över
:: Namnet på objektet som ska visas. För en mer fullständig lista över
  sätt att stava objektnamn, se avsnittet "SPECIFYING REVISIONS" i
sätt att stava objektnamn, se avsnittet "SPECIFYING REVISIONS" i
  [[gitrevisions(7)]].
[[gitrevisions(7)]].
* -t
* -t
:: Istället för innehållet, visa objekttypen som identifieras av
:: Istället för innehållet, visa objekttypen som identifieras av
  ''<objekt>''.
''<objekt>''.
* -s
* -s
:: Istället för innehållet, visa objektstorleken som identifieras av
:: Istället för innehållet, visa objektstorleken som identifieras av
  ''<objekt>''. Om det används med alternativet '''--use-mailmap'''
''<objekt>''. Om det används med alternativet '''--use-mailmap'''
  visas storleken på det uppdaterade objektet efter att identiteter
visas storleken på det uppdaterade objektet efter att identiteter
  ersatts med hjälp av mailmap-mekanismen.
ersatts med hjälp av mailmap-mekanismen.
* -e
* -e
:: Avsluta med status noll om ''<objekt>'' existerar och är ett giltigt
:: Avsluta med status noll om ''<objekt>'' existerar och är ett giltigt
  objekt. Om ''<objekt>'' har ett ogiltigt format, avsluta med status
objekt. Om ''<objekt>'' har ett ogiltigt format, avsluta med status
  nollskild och skriv ut ett felmeddelande på stderr.
nollskild och skriv ut ett felmeddelande på stderr.
* -p
* -p
:: Skriv ut innehållet i ''<objekt>'' på ett snyggt sätt baserat på dess
:: Skriv ut innehållet i ''<objekt>'' på ett snyggt sätt baserat på dess
  typ.
typ.
* <typ>
* <typ>
:: Vanligtvis matchar detta den verkliga typen av ''<objekt>'' men att
:: Vanligtvis matchar detta den verkliga typen av ''<objekt>'' men att
  begära en typ som trivialt kan derefereras från det givna
begära en typ som trivialt kan derefereras från det givna
  ''<objekt>'' är också tillåtet. Ett exempel är att begära ett "träd"
''<objekt>'' är också tillåtet. Ett exempel är att begära ett "träd"
  med ''<objekt>'' som ett commit-objekt som innehåller det, eller att
med ''<objekt>'' som ett commit-objekt som innehåller det, eller att
  begära en "blob" med ''<objekt>'' som ett taggobjekt som pekar på
begära en "blob" med ''<objekt>'' som ett taggobjekt som pekar på
  det.
det.
* --[no-]mailmap, --[no-]use-mailmap
* --[no-]mailmap, --[no-]use-mailmap
:: Använd mailmap-fil för att mappa namn och e-postadresser för
:: Använd mailmap-fil för att mappa namn och e-postadresser för
  författare, committer och taggare till kanoniska riktiga namn och
författare, committer och taggare till kanoniska riktiga namn och
  e-postadresser. Se [[git-shortlog(1)]].
e-postadresser. Se [[git-shortlog(1)]].
* --textconv
* --textconv
:: Visa innehållet som transformerats av ett textkonverteringsfilter. I
:: Visa innehållet som transformerats av ett textkonverteringsfilter. I
  detta fall måste ''<objekt>'' ha formatet ''<träd-ish>'''''<kolon>''''''<sökväg>''',
detta fall måste ''<objekt>'' ha formatet ''<träd-ish>'''''<kolon>''''''<sökväg>''',
  eller '''<kolon>''''''<sökväg>''' för att tillämpa filtret på innehållet
eller '''<kolon>''''''<sökväg>''' för att tillämpa filtret på innehållet
  som registrerats i indexet på ''<sökväg>''.
som registrerats i indexet på ''<sökväg>''.
* --filters
* --filters
:: Visa innehållet som konverterats av de filter som konfigurerats i den
:: Visa innehållet som konverterats av de filter som konfigurerats i den
  aktuella arbetskopian för den givna ''<sökväg>'' (dvs. smudge-filter,
aktuella arbetskopian för den givna ''<sökväg>'' (dvs. smudge-filter,
  radslutskonvertering etc.). I detta fall måste ''<objekt>'' ha
radslutskonvertering etc.). I detta fall måste ''<objekt>'' ha
  formatet ''<träd-ish>'''''<kolon>''''''<sökväg>''', eller '''<kolon>''''''<sökväg>'''.
formatet ''<träd-ish>'''''<kolon>''''''<sökväg>''', eller '''<kolon>''''''<sökväg>'''.
* --path=<sökväg>
* --path=<sökväg>
:: För användning med '''--textconv''' eller '''--filters''', för att
:: 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
tillåta att ett objektnamn och en sökväg anges separat, t.ex. när det
  är svårt att räkna ut från vilken revision bloben kom.
är svårt att räkna ut från vilken revision bloben kom.
* --batch, --batch=<format>
* --batch, --batch=<format>
:: Skriv ut objektinformation och innehåll för varje objekt som anges på
:: Skriv ut objektinformation och innehåll för varje objekt som anges på
  stdin. Får inte kombineras med några andra alternativ eller argument
stdin. Får inte kombineras med några andra alternativ eller argument
  förutom '''--textconv''', '''--filters''' eller '''--use-mailmap'''.
förutom '''--textconv''', '''--filters''' eller '''--use-mailmap'''.
:: * Vid användning med '''--textconv''' eller '''--filters''' måste
:: * Vid användning med '''--textconv''' eller '''--filters''' måste
    inmatningsraderna ange sökvägen, separerad med blanksteg. Se
inmatningsraderna ange sökvägen, separerad med blanksteg. Se
    avsnittet '''BATCH OUTPUT''' nedan för detaljer.
avsnittet '''BATCH OUTPUT''' nedan för detaljer.
:: * Vid användning med '''--use-mailmap''' visar innehållsdelen av
:: * Vid användning med '''--use-mailmap''' visar innehållsdelen av
    utmatningen för commit- och taggobjekt de identiteter som ersatts
utmatningen för commit- och taggobjekt de identiteter som ersatts
    med mailmap-mekanismen, medan informationsdelen av utmatningen
med mailmap-mekanismen, medan informationsdelen av utmatningen
    visar objektets storlek som om det faktiskt registrerade de
visar objektets storlek som om det faktiskt registrerade de
    ersatta identiteterna.
ersatta identiteterna.
* --batch-check, --batch-check=<format>
* --batch-check, --batch-check=<format>
:: Skriv ut objektinformation för varje objekt som anges på stdin. Får
:: Skriv ut objektinformation för varje objekt som anges på stdin. Får
  inte kombineras med några andra alternativ eller argument förutom
inte kombineras med några andra alternativ eller argument förutom
  '''--textconv''', '''--filters''' eller '''--use-mailmap'''.
'''--textconv''', '''--filters''' eller '''--use-mailmap'''.
:: * Vid användning med '''--textconv''' eller '''--filters''' måste
:: * Vid användning med '''--textconv''' eller '''--filters''' måste
    inmatningsraderna ange sökvägen, separerad med blanksteg. Se
inmatningsraderna ange sökvägen, separerad med blanksteg. Se
    avsnittet '''BATCH OUTPUT''' nedan för detaljer.
avsnittet '''BATCH OUTPUT''' nedan för detaljer.
:: * Vid användning med '''--use-mailmap''' visar den utskrivna
:: * Vid användning med '''--use-mailmap''' visar den utskrivna
    objektinformationen för commit- och taggobjekt objektets storlek
objektinformationen för commit- och taggobjekt objektets storlek
    som om de identiteter som registrerats i det ersattes av
som om de identiteter som registrerats i det ersattes av
    mailmap-mekanismen.
mailmap-mekanismen.
* --batch-command, --batch-command=<format>
* --batch-command, --batch-command=<format>
:: Gå in i ett kommandoläge som läser kommandon och argument från stdin.
:: Gå in i ett kommandoläge som läser kommandon och argument från stdin.
  Får endast kombineras med '''--buffer''', '''--textconv''',
Får endast kombineras med '''--buffer''', '''--textconv''',
  '''--use-mailmap''' eller '''--filters'''.
'''--use-mailmap''' eller '''--filters'''.
:: * Vid användning med '''--textconv''' eller '''--filters''' måste
:: * Vid användning med '''--textconv''' eller '''--filters''' måste
    inmatningsraderna ange sökvägen, separerad med blanksteg. Se
inmatningsraderna ange sökvägen, separerad med blanksteg. Se
    avsnittet '''BATCH OUTPUT''' nedan för detaljer.
avsnittet '''BATCH OUTPUT''' nedan för detaljer.
:: * Vid användning med '''--use-mailmap''' visar kommandot '''contents'''
:: * Vid användning med '''--use-mailmap''' visar kommandot '''contents'''
    för commit- och taggobjekt de identiteter som ersatts med
för commit- och taggobjekt de identiteter som ersatts med
    mailmap-mekanismen, medan kommandot '''info''' visar objektets
mailmap-mekanismen, medan kommandot '''info''' visar objektets
    storlek som om det faktiskt registrerade de ersatta
storlek som om det faktiskt registrerade de ersatta
    identiteterna.
identiteterna.
:: '''--batch-command''' känner igen följande kommandon:
:: '''--batch-command''' känner igen följande kommandon:
::: contents <objekt>
::: contents <objekt>
:::: Skriv ut objektinnehåll för objektreferensen ''<objekt>''. Detta
:::: Skriv ut objektinnehåll för objektreferensen ''<objekt>''. Detta
    motsvarar utmatningen från '''--batch'''.
motsvarar utmatningen från '''--batch'''.
::: info <objekt>
::: info <objekt>
:::: Skriv ut objektinformation för objektreferensen ''<objekt>''. Detta
:::: Skriv ut objektinformation för objektreferensen ''<objekt>''. Detta
    motsvarar utmatningen från '''--batch-check'''.
motsvarar utmatningen från '''--batch-check'''.
::: flush
::: flush
:::: Används med '''--buffer''' för att exekvera alla föregående
:::: Används med '''--buffer''' för att exekvera alla föregående
    kommandon som utfärdats sedan början eller sedan den senaste
kommandon som utfärdats sedan början eller sedan den senaste
    '''flush''' utfärdades. När '''--buffer''' används kommer ingen
'''flush''' utfärdades. När '''--buffer''' används kommer ingen
    utmatning förrän en '''flush''' utfärdas. När '''--buffer''' inte
utmatning förrän en '''flush''' utfärdas. När '''--buffer''' inte
    används spolas kommandon varje gång utan att '''flush''' utfärdas.
används spolas kommandon varje gång utan att '''flush''' utfärdas.
* --batch-all-objects
* --batch-all-objects
:: Istället för att läsa en lista med objekt på stdin, utför den begärda
:: Istället för att läsa en lista med objekt på stdin, utför den begärda
  batchoperationen på alla objekt i arkivet och eventuella alternativa
batchoperationen på alla objekt i arkivet och eventuella alternativa
  objektlager (inte bara nåbara objekt). Kräver att '''--batch''' eller
objektlager (inte bara nåbara objekt). Kräver att '''--batch''' eller
  '''--batch-check''' anges. Som standard besöks objekten i ordning
'''--batch-check''' anges. Som standard besöks objekten i ordning
  sorterade efter deras hashvärden; se även '''--unordered''' nedan.
sorterade efter deras hashvärden; se även '''--unordered''' nedan.
  Objekt presenteras som de är, utan hänsyn till "replace"-mekanismen
Objekt presenteras som de är, utan hänsyn till "replace"-mekanismen
  i [[git-replace(1)]].
i [[git-replace(1)]].
* --buffer
* --buffer
:: Normalt spolas batchutmatningen efter att varje objekt har skrivits ut,
:: Normalt spolas batchutmatningen efter att varje objekt har skrivits ut,
  så att en process interaktivt kan läsa och skriva från '''cat-file'''.
så att en process interaktivt kan läsa och skriva från '''cat-file'''.
  Med detta alternativ använder utmatningen normal stdio-buffering; detta
Med detta alternativ använder utmatningen normal stdio-buffering; detta
  är mycket effektivare vid anrop av '''--batch-check''' eller
är mycket effektivare vid anrop av '''--batch-check''' eller
  '''--batch-command''' på ett stort antal objekt.
'''--batch-command''' på ett stort antal objekt.
* --unordered
* --unordered
:: När '''--batch-all-objects''' används, besök objekt i en ordning som
:: När '''--batch-all-objects''' används, besök objekt i en ordning som
  kan vara mer effektiv för åtkomst av objektinnehåll än hash-ordning.
kan vara mer effektiv för åtkomst av objektinnehåll än hash-ordning.
  De exakta detaljerna i ordningen är ospecificerade, men om du inte
De exakta detaljerna i ordningen är ospecificerade, men om du inte
  behöver en specifik ordning bör detta i allmänhet resultera i snabbare
behöver en specifik ordning bör detta i allmänhet resultera i snabbare
  utmatning, särskilt med '''--batch'''. Observera att '''cat-file'''
utmatning, särskilt med '''--batch'''. Observera att '''cat-file'''
  fortfarande bara visar varje objekt en gång, även om det lagras flera
fortfarande bara visar varje objekt en gång, även om det lagras flera
  gånger i arkivet.
gånger i arkivet.
* --allow-unknown-type
* --allow-unknown-type
:: Tillåt '''-s''' eller '''-t''' att fråga trasiga/korrupta objekt av
:: Tillåt '''-s''' eller '''-t''' att fråga trasiga/korrupta objekt av
  okänd typ.
okänd typ.
* --follow-symlinks
* --follow-symlinks
:: Med '''--batch''' eller '''--batch-check''' följ symlänkar inuti
:: Med '''--batch''' eller '''--batch-check''' följ symlänkar inuti
  arkivet vid begäran av objekt med utökade SHA-1-uttryck av formen
arkivet vid begäran av objekt med utökade SHA-1-uttryck av formen
  träd-ish:sökväg-i-träd. Istället för att tillhandahålla utmatning om
träd-ish:sökväg-i-träd. Istället för att tillhandahålla utmatning om
  själva länken, tillhandahåll utmatning om det länkade objektet. Om en
själva länken, tillhandahåll utmatning om det länkade objektet. Om en
  symlänk pekar utanför träd-ish (t.ex. en länk till '''/foo''' eller en
symlänk pekar utanför träd-ish (t.ex. en länk till '''/foo''' eller en
  länk på rotnivå till '''../foo'''), skrivs den del av länken som
länk på rotnivå till '''../foo'''), skrivs den del av länken som
  ligger utanför trädet ut.
ligger utanför trädet ut.
:: Detta alternativ fungerar (för närvarande) inte korrekt när ett objekt
:: Detta alternativ fungerar (för närvarande) inte korrekt när ett objekt
  i indexet anges (t.ex. '''<kolon>länk''' istället för '''HEAD:länk''')
i indexet anges (t.ex. '''<kolon>länk''' istället för '''HEAD:länk''')
  snarare än ett i trädet.
snarare än ett i trädet.
:: Detta alternativ kan (för närvarande) inte användas om inte '''--batch'''
:: Detta alternativ kan (för närvarande) inte användas om inte '''--batch'''
  eller '''--batch-check''' används.
eller '''--batch-check''' används.
:: Betrakta till exempel ett git-arkiv som innehåller:
:: Betrakta till exempel ett git-arkiv som innehåller:
::: f: en fil som innehåller "hello\n"
::: f: en fil som innehåller "hello\n"
Rad 167: Rad 167:
::: ce013625030ba8dba906f756967f9e9ca394464a blob 6
::: ce013625030ba8dba906f756967f9e9ca394464a blob 6
:: Och '''echo HEAD:link | git cat-file --batch --follow-symlinks'''
:: Och '''echo HEAD:link | git cat-file --batch --follow-symlinks'''
  skulle skriva ut samma sak, liksom '''HEAD:dir/link''', eftersom båda
skulle skriva ut samma sak, liksom '''HEAD:dir/link''', eftersom båda
  pekar på '''HEAD:f'''.
pekar på '''HEAD:f'''.
:: Utan '''--follow-symlinks''' skulle dessa skriva ut data om själva
:: Utan '''--follow-symlinks''' skulle dessa skriva ut data om själva
  symlänken. I fallet med '''HEAD:link''' skulle du se
symlänken. I fallet med '''HEAD:link''' skulle du se
::: 4d1ae35ba2c8ec712fa2a379db44ad639ca277bd blob 1
::: 4d1ae35ba2c8ec712fa2a379db44ad639ca277bd blob 1
:: Både '''plink''' och '''alink''' pekar utanför trädet, så de skulle
:: Både '''plink''' och '''alink''' pekar utanför trädet, så de skulle
Rad 180: Rad 180:
* -Z
* -Z
:: Endast meningsfullt med '''--batch''', '''--batch-check''' eller
:: Endast meningsfullt med '''--batch''', '''--batch-check''' eller
  '''--batch-command'''; inmatning och utmatning är NUL-avgränsad
'''--batch-command'''; inmatning och utmatning är NUL-avgränsad
  istället för radmatningsavgränsad.
istället för radmatningsavgränsad.
* -z
* -z
:: Endast meningsfullt med '''--batch''', '''--batch-check''' eller
:: Endast meningsfullt med '''--batch''', '''--batch-check''' eller
  '''--batch-command'''; inmatningen är NUL-avgränsad istället för
'''--batch-command'''; inmatningen är NUL-avgränsad istället för
  radmatningsavgränsad. Detta alternativ är föråldrat till förmån för
radmatningsavgränsad. Detta alternativ är föråldrat till förmån för
  '''-Z''' eftersom utmatningen annars kan vara tvetydig.
'''-Z''' eftersom utmatningen annars kan vara tvetydig.


== UTMATNING ==
== UTMATNING ==

Nuvarande version från 9 april 2025 kl. 05.45

Mall:manpage

NAMN

git-cat-file - Tillhandahåll innehåll eller detaljer om arkivobjekt

SYNOPSIS

git cat-file <typ> <objekt> git cat-file (-e | -p) <objekt> git cat-file (-t | -s) [--allow-unknown-type] <objekt> git cat-file (--textconv | --filters)

            [<rev>:<sökväg|träd-ish> | --path=<sökväg|träd-ish> <rev>]

git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]

            [--buffer] [--follow-symlinks] [--unordered]
            [--textconv | --filters] [-Z]

BESKRIVNING

Skriv ut innehållet eller andra egenskaper som storlek, typ eller deltainformation för ett eller flera objekt.

Detta kommando kan fungera i två lägen, beroende på om ett alternativ från --batch-familjen anges.

I icke-batchläge tillhandahåller kommandot information om ett objekt som namnges på kommandoraden.

I batchläge läses argument från standardinmatningen.

ALTERNATIV

  • <objekt>
Namnet på objektet som ska visas. För en mer fullständig lista över
sätt att stava objektnamn, se avsnittet "SPECIFYING REVISIONS" 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 som identifieras av

<objekt>. Om det används med alternativet --use-mailmap visas storleken på det uppdaterade objektet efter att identiteter ersatts med hjälp av mailmap-mekanismen.

  • -e
Avsluta med status noll om <objekt> existerar och är ett giltigt
objekt. Om <objekt> har ett ogiltigt format, avsluta med status
nollskild och skriv ut ett felmeddelande på stderr.
  • -p
Skriv ut innehållet i <objekt> på ett snyggt sätt baserat på dess

typ.

  • <typ>
Vanligtvis matchar detta den verkliga typen av <objekt> men att

begära en typ som trivialt kan derefereras från det givna <objekt> är också tillåtet. Ett exempel är att begära ett "träd" med <objekt> som ett commit-objekt som innehåller det, eller att begära en "blob" med <objekt> som ett taggobjekt som pekar på det.

  • --[no-]mailmap, --[no-]use-mailmap
Använd mailmap-fil för att mappa namn och e-postadresser för

författare, committer och taggare till kanoniska riktiga namn och e-postadresser. Se git-shortlog(1).

  • --textconv
Visa innehållet som transformerats av ett textkonverteringsfilter. I

detta fall måste <objekt> ha formatet <träd-ish><kolon>'<sökväg>', eller <kolon>'<sökväg>' för att tillämpa filtret på innehållet som registrerats i indexet på <sökväg>.

  • --filters
Visa innehållet som konverterats av de filter som konfigurerats i den

aktuella arbetskopian för den givna <sökväg> (dvs. smudge-filter, radslutskonvertering etc.). I detta fall måste <objekt> ha formatet <träd-ish><kolon>'<sökväg>, eller <kolon>'<sökväg>.

  • --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 räkna ut från vilken revision bloben kom.

  • --batch, --batch=<format>
Skriv ut objektinformation och innehåll för varje objekt som anges på

stdin. Får inte kombineras med några andra alternativ eller argument förutom --textconv, --filters eller --use-mailmap.

* Vid användning med --textconv eller --filters måste

inmatningsraderna ange sökvägen, separerad med blanksteg. Se avsnittet BATCH OUTPUT nedan för detaljer.

* Vid användning med --use-mailmap visar innehållsdelen av

utmatningen för commit- och taggobjekt de identiteter som ersatts med mailmap-mekanismen, medan informationsdelen av utmatningen visar objektets storlek som om det faktiskt registrerade de ersatta identiteterna.

  • --batch-check, --batch-check=<format>
Skriv ut objektinformation för varje objekt som anges på stdin. Får

inte kombineras med några andra alternativ eller argument förutom --textconv, --filters eller --use-mailmap.

* Vid användning med --textconv eller --filters måste

inmatningsraderna ange sökvägen, separerad med blanksteg. Se avsnittet BATCH OUTPUT nedan för detaljer.

* Vid användning med --use-mailmap visar den utskrivna

objektinformationen för commit- och taggobjekt objektets storlek som om de identiteter som registrerats i det ersattes av mailmap-mekanismen.

  • --batch-command, --batch-command=<format>
Gå in i ett kommandoläge som läser kommandon och argument från stdin.

Får endast kombineras med --buffer, --textconv, --use-mailmap eller --filters.

* Vid användning med --textconv eller --filters måste

inmatningsraderna ange sökvägen, separerad med blanksteg. Se avsnittet BATCH OUTPUT nedan för detaljer.

* Vid användning med --use-mailmap visar kommandot contents

för commit- och taggobjekt de identiteter som ersatts med mailmap-mekanismen, medan kommandot info visar objektets storlek som om det faktiskt registrerade de ersatta identiteterna.

--batch-command känner igen följande kommandon:
contents <objekt>
Skriv ut objektinnehåll för objektreferensen <objekt>. Detta

motsvarar utmatningen från --batch.

info <objekt>
Skriv ut objektinformation för objektreferensen <objekt>. Detta

motsvarar utmatningen från --batch-check.

flush
Används med --buffer för att exekvera alla föregående

kommandon som utfärdats sedan början eller sedan den senaste flush utfärdades. När --buffer används kommer ingen utmatning förrän en flush utfärdas. När --buffer inte används spolas kommandon varje gång utan att flush utfärdas.

  • --batch-all-objects
Istället för att läsa en lista med objekt på stdin, utför den begärda

batchoperationen på alla objekt i arkivet 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 hashvärden; se även --unordered nedan. Objekt presenteras som de är, utan hänsyn till "replace"-mekanismen i git-replace(1).

  • --buffer
Normalt spolas batchutmatningen efter att varje objekt har skrivits ut,

så att en process interaktivt kan läsa och skriva från cat-file. Med detta alternativ använder utmatningen normal stdio-buffering; detta är mycket effektivare vid anrop av --batch-check eller --batch-command 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 åtkomst av objektinnehåll än hash-ordning. De exakta detaljerna i ordningen är ospecificerade, men om du inte behöver en specifik ordning bör detta i allmänhet resultera i snabbare utmatning, särskilt med --batch. Observera att cat-file fortfarande bara visar varje objekt en gång, även om det lagras flera gånger i arkivet.

  • --allow-unknown-type
Tillåt -s eller -t att fråga trasiga/korrupta objekt av

okänd typ.

  • --follow-symlinks
Med --batch eller --batch-check följ symlänkar inuti

arkivet vid begäran av objekt med utökade SHA-1-uttryck av formen träd-ish:sökväg-i-träd. Istället för att tillhandahålla utmatning om själva länken, tillhandahåll utmatning om det länkade objektet. Om en symlänk pekar utanför träd-ish (t.ex. en länk till /foo eller en länk på rotnivå till ../foo), skrivs den del av länken som ligger utanför trädet ut.

Detta alternativ fungerar (för närvarande) inte korrekt när ett objekt

i indexet anges (t.ex. <kolon>länk istället för HEAD:länk) snarare än ett i trädet.

Detta alternativ kan (för närvarande) inte användas om inte --batch

eller --batch-check används.

Betrakta till exempel ett git-arkiv som innehåller:
f: en fil som innehåller "hello\n"
link: en symlänk till f
dir/link: en symlänk till ../f
plink: en symlänk till ../f
alink: en symlänk 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:dir/link, eftersom båda pekar på HEAD:f.

Utan --follow-symlinks skulle dessa skriva ut data om själva

symlänken. I fallet med HEAD:link skulle du se

4d1ae35ba2c8ec712fa2a379db44ad639ca277bd blob 1
Både plink och alink pekar utanför trädet, så de skulle
  respektive skriva ut:
symlink 4
../f
symlink 11
/etc/passwd
  • -Z
Endast meningsfullt med --batch, --batch-check eller

--batch-command; inmatning och utmatning är NUL-avgränsad istället för radmatningsavgränsad.

  • -z
Endast meningsfullt med --batch, --batch-check eller

--batch-command; inmatningen är NUL-avgränsad istället för radmatningsavgrä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 utmatning, om inte <objekt> är felaktigt formaterat. Om -p anges, skrivs innehållet i <objekt> ut på ett snyggt sätt. Om <typ> anges, returneras det råa (om än okomprimerade) innehållet i <objekt>.

BATCH-UTMATNING

Om --batch eller --batch-check anges läser cat-file objekt från stdin, ett per rad, och skriver ut information om dem i samma ordning som de har lästs. Som standard betraktas hela raden som ett objekt, som om det matades till git-rev-parse(1).

När --batch-command anges läser cat-file kommandon från stdin, ett per rad, och skriver ut information baserat på det givna kommandot. Med --batch-command skriver kommandot info följt av ett objekt ut information om objektet på samma sätt som --batch-check skulle göra, och kommandot contents följt av ett objekt skriver ut innehåll på samma sätt som --batch skulle göra.

Du kan specificera den information 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 ny rad. De tillgängliga atomerna är:

objectname::

 Den fullständiga hexadecimala representationen av objektnamnet.

objecttype::

 Objektets typ (samma som cat-file -t rapporterar).

objectsize::

 Objektets storlek i byte (samma som cat-file -s rapporterar).

objectsize:disk::

 Storleken i byte som objektet upptar på disken. Se noten om storlekar
 på disken i avsnittet CAVEATS nedan.

deltabase::

 Om objektet lagras som en delta på disken expanderar detta till den
 fullständiga hexadecimala representationen av delta-basobjektets namn.
 Annars expanderar det till null-OID (alla nollor). Se CAVEATS
 nedan.

rest::

 Om denna atom används i utmatningssträngen delas inmatningsraderna vid
 den första blankstegsgränsen. Alla tecken före det blanksteget
 betraktas som objektnamnet; tecken efter den första sekvensen av
 blanksteg (dvs. "resten" av raden) skrivs 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 lösas till ett objekt i arkivet kommer cat-file att ignorera alla anpassade format och skriva ut:

   <objekt> SP missing 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 --follow-symlinks används och en symlänk i arkivet pekar utanför arkivet kommer cat-file att ignorera alla anpassade format och skriva ut:

   symlink SP <storlek> LF
   <symlänk> LF

Symlänken kommer antingen att vara absolut (börjar med ett /') eller relativ till trädets rot. Om till exempel dir/link pekar på ../../foo, kommer <symlänk> att vara ../foo. <storlek> är symlänkens storlek i byte.

följande felmeddelanden:

   <objekt> SP missing LF

skrivs ut när den initiala symlänken som begärdes inte existerar.

   dangling SP <storlek> LF
   <objekt> LF

skrivs ut när den initiala symlänken existerar, men något som den (transitivt) pekar på inte existerar.

   loop SP <storlek> LF
   <objekt> LF

skrivs ut för symlänk-loopar (eller alla 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 ett katalognamn under symlänk-upplösning.

Alternativt, när -Z skickas, ersätts radmatningarna i alla ovanstående exempel med NUL-terminatorer. Detta säkerställer att utmatningen kommer att vara parsbar om utmatningen i sig skulle innehålla en radmatning och rekommenderas därför för skriptändamål.

CAVEATS

Observera att storlekarna på objekt på disken rapporteras korrekt, men försiktighet bör iakttas vid dragning av slutsatser om vilka referenser eller objekt som är ansvariga för diskanvändningen. Storleken på ett packat icke-delta-objekt kan vara mycket större än storleken på objekt som deltar mot det, men valet av vilket objekt som är bas och vilket som är delta är godtyckligt och kan komma att ändras under en ompackning.

Observera också att flera kopior av ett objekt kan finnas i objektdatabasen; i detta fall är det odefinierat vilken kopias storlek eller delta-bas som kommer att rapporteras.

GIT

Del av git(1)-sviten

KOLOFON

Den här sidan är en del av projektet git (Git distribuerat versionshanteringssystem). Information om projektet finns på <⟨http://git-scm.com/⟩>. Om du har en felrapport för den här manualsidan, se <⟨http://git-scm.com/community⟩>. Den här sidan hämtades från projektets uppströms Git-arkiv <⟨https://github.com/git/git.git⟩> den 2025-02-02. (Vid den tidpunkten var datumet för den senast hittade commiten i arkivet 2025-01-31.) Om du upptäcker några renderingsproblem i den här HTML-versionen av sidan, eller om du tror att det finns en bättre eller mer aktuell källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i den här KOLOFONEN (som *inte* är en del av den ursprungliga manualsidan), skicka ett e-postmeddelande till man-pages@man7.org

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/git-cat-file.1.html


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.