Git
Português (Brasil) ▾ Topics ▾ Latest version ▾ git-cat-file last updated in 2.24.0

NOME

git-arquivo-gato - Forneça informações de conteúdo ou tipo e tamanho para objetos de repositório

SINOPSE

git cat-file (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv | --filters ) [--path=<path>] <object>
git cat-file (--batch | --batch-check) [ --textconv | --filters ] [--follow-symlinks]

DESCRIÇÃO

Em sua primeira forma, o comando fornece o conteúdo ou o tipo de um objeto no repositório. O tipo é requerido a menos que -t ou` -p` seja usado para encontrar o tipo de objeto, ou -s seja usado para encontrar o tamanho do objeto, ou` --textconv` ou --filters seja usado (que implicam tipo "blob").

No segundo formulário, uma lista de objetos (separados por feeds de linha) é fornecida em stdin, e o SHA-1, tipo e tamanho de cada objeto são impressos em stdout. O formato de saída pode ser substituído usando o argumento opcional <formato>. Se --textconv ou` --filters` forem especificados, a entrada deverá listar os nomes dos objetos seguidos pelo nome do caminho, separados por um único espaço em branco, para que os drivers apropriados possam ser determinados.

OPÇÕES

<objeto>

O nome do objeto a ser mostrado. Para uma lista mais completa de maneiras de soletrar nomes de objetos, veja a seção "ESPECIFICANDO REVISÕES" em gitrevisions[7].

-t

Em vez do conteúdo, mostre o tipo de objeto identificado por <objeto>.

-s

Em vez do conteúdo, mostre o tamanho do objeto identificado por <objeto>.

-e

Saia com status zero se <objeto> existir e for um objeto válido. Se <objeto> for de um formato inválido, saia com um valor diferente de zero e emite um erro no stderr.

-p

Impressão-bonita o conteúdo de <objeto> baseado em seu tipo.

<tipo>

Normalmente, isso corresponde ao tipo real de <objeto>, mas também é permitido solicitar um tipo que possa ser desreferenciado trivialmente do <objeto> fornecido. Um exemplo é pedir uma "árvore" com <objeto> sendo um objeto commit que a contenha, ou pedir um "blob" com <objeto> sendo um objeto de tag que aponta para ele.

--textconv

Mostrar o conteúdo como transformado por um filtro textconv. Nesse caso, <objeto> deve estar no formato <tree-ish>: <path>, ou: <path> para aplicar o filtro ao conteúdo registrado no índice em <path>.

--filters

Mostrar o conteúdo como convertido pelos filtros configurados na árvore de trabalho atual para o <path> fornecido (por exemplo, filtros de manchas, conversão de fim de linha, etc.). Nesse caso, <objeto> deve estar no formato <tree-ish>: <path>, ou: <path>.

--path=<path>

Para uso com --textconv ou --filters, para permitir a especificação de um nome de objeto e um caminho separadamente, por ex. quando é difícil descobrir a revisão de onde veio a bolha.

--batch
--batch=<formato>

Imprima informações sobre o objeto e o conteúdo de cada objeto fornecido no stdin. Não pode ser combinado com quaisquer outras opções ou argumentos, exceto --textconv ou` --filters`, caso em que as linhas de entrada também precisam especificar o caminho, separadas por espaço em branco. Veja a seção BATCH OUTPUT abaixo para detalhes.

--batch-check
--batch-check=<formato>

Imprime as informações do objeto para cada objeto fornecido no stdin. Não pode ser combinado com quaisquer outras opções ou argumentos, exceto --textconv ou` --filters`, caso em que as linhas de entrada também precisam especificar o caminho, separadas por espaço em branco. Veja a seção BATCH OUTPUT abaixo para detalhes.

--batch-all-objects

Em vez de ler uma lista de objetos no stdin, execute a operação em lote solicitada em todos os objetos no repositório e em quaisquer armazenamentos de objetos alternativos (não apenas objetos acessíveis). Requer --batch ou` --batch-check` ser especificado. Observe que os objetos são visitados em ordem classificados por seus hashes.

--buffer

Normalmente, a saída em lote é liberada após a saída de cada objeto, para que um processo possa ler e gravar interativamente a partir do arquivo "cat-file". Com essa opção, a saída usa o buffer stdio normal; isso é muito mais eficiente ao invocar o --batch-check em um grande número de objetos.

--unordered

Quando --batch-all-objects estiver em uso, visite objetos em uma ordem que pode ser mais eficiente para acessar o conteúdo do objeto do que a ordem hash. Os detalhes exatos do pedido não são especificados, mas se você não precisar de um pedido específico, isso geralmente deve resultar em uma saída mais rápida, especialmente com --batch. Note que cat-file ainda mostrará cada objeto apenas uma vez, mesmo que seja armazenado várias vezes no repositório.

--allow-unknown-type

Permitir que -s ou -t consultem objetos corrompidos/corrompidos de tipo desconhecido.

Com --batch ou --batch-check, siga os links simbólicos dentro do repositório ao solicitar objetos com expressões SHA-1 estendidas do formulário tree-ish: path-in-tree. Em vez de fornecer saída sobre o próprio link, forneça saída sobre o objeto vinculado. Se um link simbólico apontar para fora da árvore-ish (por exemplo, um link para /foo ou um link no nível-raiz para ../foo), a parte do link que está fora da árvore será impressa.

Esta opção não funciona (atualmente) corretamente quando um objeto no índice é especificado (por exemplo, : link em vez de` HEAD: link`) em vez de um na árvore.

Esta opção não pode (atualmente) ser usada, a menos que --batch ou` --batch-check` seja usado.

Por exemplo, considere um repositório git contendo:

f: a file containing "hello\n"
link: a symlink to f
dir/link: a symlink to ../f
plink: a symlink to ../f
alink: a symlink to /etc/passwd

Para um arquivo normal f,` echo HEAD:f | git cat-file --batch` imprimiria

ce013625030ba8dba906f756967f9e9ca394464a blob 6

E echo HEAD:link | git cat-file --batch --follow-symlinks imprimiria a mesma coisa, assim como HEAD:dir/link, como ambos apontam para` HEAD:f`.

Sem - siga-links-simbólicos, estes iriam imprimir dados sobre o link simbólico em si. No caso de "HEAD: link", você veria

4d1ae35ba2c8ec712fa2a379db44ad639ca277bd blob 1

Ambos plink e` alink` apontam para fora da árvore, então eles imprimiriam respectivamente:

link-simbólico 4
../f
link-simbólico 11
/etc/passwd

SAÍDA

Se -t for especificado, um dos <tipo>.

Se -s for especificado, o tamanho do <objeto> em bytes.

Se -e for especificado, nenhuma saída, a menos que o <objeto> esteja malformado.

Se -p for especificado, o conteúdo de <object> será bem impresso.

Se <tipo> for especificado, o conteúdo bruto (embora não compactado) do <objeto> será retornado.

SAÍDA DO LOTE

Se --batch ou` --batch-check` for fornecido, o cat-file lerá objetos de stdin, um por linha, e imprimirá informações sobre eles. Por padrão, a linha inteira é considerada como um objeto, como se fosse alimentada para git-rev-parse[1].

Você pode especificar as informações mostradas para cada objeto usando um <formato> personalizado. O <formato> é copiado literalmente para stdout para cada objeto, com espaços reservados da forma %(atom) expandidos, seguidos por uma nova linha. Os átomos disponíveis são:

objectname

O nome do objeto com 40 hexadecimais do objeto.

objecttype

O tipo do objeto (o mesmo que os relatórios cat-file -t).

objectsize

O tamanho, em bytes, do objeto (o mesmo que os relatórios cat-file -s).

tamanho do objeto:disk

O tamanho, em bytes, que o objeto ocupa no disco. Veja a nota sobre tamanhos em disco na seção "CAVEATS" abaixo.

deltabase

Se o objeto é armazenado como um delta no disco, isso se expande para o hex sha-401 do objeto base delta. Caso contrário, expande para o nulo sha1 (40 zeros). Veja CAVEATS abaixo.

rest

Se esse átomo for usado na sequência de saída, as linhas de entrada serão divididas no primeiro limite de espaço em branco. Todos os caracteres antes desses espaços em branco são considerados o nome do objeto; caracteres após essa primeira execução de espaço em branco (ou seja, o "resto" da linha) são emitidos no lugar do átomo "%(restante)".

Se nenhum formato for especificado, o formato padrão é %(objeto-nome) %(objeto-tipo)%(objeto-tamanho).

Se --batch for especificado, as informações do objeto são seguidas pelo conteúdo do objeto (consistindo de`% (objeto-tamanho) `bytes), seguido por uma nova linha.

Por exemplo, --batch sem um formato personalizado produziria:

<sha1> SP <tipo> SP <tamanho> LF
<conteúdo> LF

Considerando que --batch-check ='%(objeto-nome)% (objeto-tipo)' produziria:

<sha1> SP <tipo> LF

Se um nome é especificado no stdin que não pode ser resolvido para um objeto no repositório, então o cat-file irá ignorar qualquer formato customizado e imprimir:

<objeto> SP faltando LF

Se for especificado um nome que possa se referir a mais de um objeto (um sha curto ambíguo), então o cat-file ignorará qualquer formato personalizado e imprimirá:

<objeto> SP ambíguo LF

Se --siga-links-simbólicos for usado, e um link-simbólico no repositório apontar para fora do repositório, então o cat-file irá ignorar qualquer formato customizado e imprimir:

link-simbólico SP <tamanho> LF
<link-simbólico> LF

O link simbólico será absoluto (começando com a /) ou relativo à raiz da árvore. Por exemplo, se dir/link apontar para ../../foo, então <link-simbólico> será ../foo. <tamanho> é o tamanho do link-simbólico em bytes.

Se --seguir-links-simbólicos for usado, as seguintes mensagens de erro serão exibidas:

<objeto> SP faltando LF

é impresso quando o link simbólico inicial solicitado não existe.

balançando SP >tamanho> LF
<objeto> LF

é impresso quando o link-simbólico inicial existe, mas algo que ele (transitivo) aponta não.

laço SP <tamanho> LF
<objeto> LF

é impresso para laços de links simbólicos (ou quaisquer links simbólicos que exijam mais de 40 resoluções de link para resolver).

notdir SP <tamanho> LF
<objeto> LF

é impresso quando, durante a resolução do link-simbólico, um arquivo é usado como um nome de diretório.

RESSALVAS

Observe que os tamanhos dos objetos no disco são relatados com precisão, mas deve-se tomar cuidado ao tirar conclusões sobre quais refs ou objetos são responsáveis pelo uso do disco. O tamanho de um objeto não delta compactado pode ser muito maior que o tamanho de objetos que o delta, mas a escolha de qual objeto é a base e qual é o delta é arbitrária e está sujeita a alterações durante um empacotamento.

Observe também que várias cópias de um objeto podem estar presentes no banco de dados de objetos; neste caso, é indefinido qual tamanho da cópia ou base delta será relatada.

GIT

Parte do git[1] suite