Git
Português (Brasil) ▾ Topics ▾ Latest version ▾ git-show-ref last updated in 2.33.0

NOME

git-show-ref - Liste as referências no repositório local

RESUMO

git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference]
	     [-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags]
	     [--heads] [--] [<padrão>…​]
git show-ref --exclude-existing[=<padrão>]

DESCRIÇÃO

Exiba as referências disponíveis em um repositório local, juntamente com as IDs dos commits associados. Os resultados podem ser filtrados utilizando um padrão e as tags podem perder as suas referências nas IDs dos objetos. Além disso, pode ser utilizado para fazer um teste e ver se existe uma "ref" específica.

É predefinido que se exiba as tags, cabeçalhos e as referências remotas.

A opção --exclude-existing é uma forma de filtro que faz o inverso. Ele lê as refs do stdin, uma "ref" por linha, e exibe aqueles que não existem no repositório local.

O uso deste utilitário é incentivado em favor do acesso direto aos arquivos no diretório .git.

OPÇÕES

--head

Exibe a referência HEAD, mesmo que ela normalmente fosse filtrada.

--heads
--tags

Limite para "refs/heads" e "refs/tags", respectivamente. Estas opções não são mutuamente exclusivas; quando utilizadas, as referências armazenadas em "refs/heads" e "refs/tags" são exibidas.

-d
--dereference

Remova as referências das tags dos IDs do objeto também. Eles serão exibidos com um "^{}" anexado.

-s
--hash[=<n>]

Exiba apenas o hash SHA-1, não o nome da referência. Quando combinada com --dereference, a tag da perda da referência ainda será exibida após o SHA-1.

--verify

Ative a verificação de referência mais rigorosa, exigindo um caminho de referência exato. Além de retornar um código de erro 1, ele também imprimirá uma mensagem de erro caso a opção --quiet não tiver sido utilizada.

--abrev[=<n>]

Abrevie o nome do objeto. Ao utilizar --hash, não é necessário a opção --hash --abbrev; a opção --hash=n já faz.

-q
--quiet

Não imprima nenhum resultado no stdout. Quando combinado com a opção --verify, isso pode ser utilizado para verificar silenciosamente a existência de uma referência.

--exclude-existing[=<padrão>]

Faça com que o comando git show-ref atue como um filtro que leia as refs do stdin no formato "^(?:<anything>\s)?<refname>(?:\^{})?$" e execute o seguintes ações em cada: (1) tira o "^{}" no final da linha, caso haja; (2) ignore caso a predefinição seja informada e não corresponder ao cabeçalho a "refname"; (3) avise caso o "refname" não seja um "refname" bem formado e ignore; (4) ignore caso o "refname" é uma "ref" que exista no repositório local; (5) caso contrário, imprima a linha.

<padrão>…​

Exiba as referências coincidentes a um ou mais padrões. Os padrões são coincididos a partir do final do nome completo e apenas as peças completas são coincididas, por exemplo, master coincide com refs/heads/master, refs/remotes/origin/master, refs/tags/jedi/master mas não com refs/heads/mymaster ou refs/remotes/master/jedi.

SAÍDA

A saída está no formato: <SHA-1 ID> <espaço> <nome da referência>.

$ git show-ref --head --dereference
832e76a9899f560a90ffd62ae2ce83bbeff58f54 HEAD
832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/master
832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/origin
3521017556c5de4159da4615a39fa4d5d2c279b5 refs/tags/v0.99.9c
6ddc0964034342519a87fe013781abf31c6db6ad refs/tags/v0.99.9c^{}
055e4ae3ae6eb344cbabf2a5256a49ea66040131 refs/tags/v1.0rc4
423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{}
...

Ao utilizar o --hash (e não --dereference), o formato de saída é: <ID do SHA-1>

$ git show-ref --heads --hash
2e3ba0114a1f52b47df29743d6915d056be13278
185008ae97960c8d551adcd9e23565194651b5d1
03adf42c988195b50e1a1935ba5fcbc39b2b029b
...

EXEMPLOS

Para exibir todas as referências chamadas "master", sejam tags, cabeçalhos ou qualquer outro, e independentemente da profundidade na hierarquia dos nomes de referência, utilize:

	git show-ref master

Exibirá "refs/heads/master" e também "refs/remote/other-repo/master", caso tais referências existam.

Quando utilizar a opção --verify, o comando precisa de um caminho exato:

	git show-ref --verify refs/heads/master

coincidirá apenas ao ramo exato chamado "master".

Caso não haja coincidência com nada, o comando git show-ref retornará um código de erro 1 e no caso de uma verificação, exibirá uma mensagem de erro.

Para os scripts, é possível pedir para que fiquem em silêncio com a opção --quiet, que permite fazer coisas como

	git show-ref --quiet --verify -- "refs/heads/$headname" ||
		echo "O $headname não é um ramo válido"

para verificar se um ramo específico existe ou não (observe como na verdade não queremos exibir os resultados e queremos usar o nome completo da "ref" para ele, a fim de não desencadear o problema com coincidências parciais e ambíguas).

Para exibir adequadamente apenas as tags, ou apenas os cabeçalhos do ramo, utilize "--tags" e/ou "--heads" respectivamente (usando ambos significa que ele exibirá as tags e as heads, porém não as outras referências aleatórias no subdiretório refs/).

Para fazer a perda da referência automática da tag dos objetos, utilize a opção -d ou --dereference para que seja possível executar

	git show-ref --tags --dereference

para obter uma lista de todas as "tags" junto com a perda da referência feita.

ARQUIVOS

.git/refs/*, .git/packed-refs

GIT

Parte do conjunto git[1]