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.43.0 11/20/23
- 2.42.1 no changes
- 2.42.0 08/21/23
- 2.39.1 → 2.41.0 no changes
- 2.39.0 12/12/22
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.
GIT
Parte do conjunto git[1]