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.1 → 2.47.0 no changes
- 2.43.0 11/20/23
- 2.23.1 → 2.42.3 no changes
- 2.23.0 08/16/19
- 2.17.0 → 2.22.5 no changes
- 2.16.6 12/06/19
- 2.15.4 12/06/19
- 2.13.7 → 2.14.6 no changes
- 2.12.5 09/22/17
- 2.11.4 no changes
- 2.10.5 09/22/17
- 2.7.6 → 2.9.5 no changes
- 2.6.7 05/05/17
- 2.1.4 → 2.5.6 no changes
- 2.0.5 12/17/14
RESUMO
git check-ref-format [--normalize] [--[no-]allow-onelevel] [--refspec-pattern] <refname> git check-ref-format --branch <branchname-shorthand>
DESCRIÇÃO
Verifica se um determinado refnome é aceitável e sai com um status diferente de zero, se não for.
Uma referência é usada no Git para especificar as ramificações e as etiquetas. Uma HEAD
do ramo é armazenado na hierarquia refs/heads
, enquanto uma etiqueta (tag) é armazenada na hierarquia refs/tags
da referência do espaço de nomes (normalmente nos diretórios $GIT_DIR/refs/heads
e $GIT_DIR/refs/tags
ou como entradas no arquivo $GIT_DIR/packed-refs
caso as referências forem empacotadas através do comando git gc
).
O Git impõe as seguintes regras sobre como as referências são nomeadas:
-
Eles podem incluir barras
/
para agrupamento hierárquico (diretório), mas nenhum componente separado por barras pode começar com um ponto.
ou terminar com a sequência.lock
. -
Eles devem ter pelo menos um
/
. Isso reforça a presença de uma categoria comoheads/
,tags/
etc. Porém os nomes reais não são restritos. Caso a opção--allow-onelevel
seja utilizada, esta regra será dispensada. -
Eles não podem ter dois pontos consecutivos
..
em qualquer lugar. -
Eles não podem ter caracteres de controle ASCII (ou seja, bytes cujos valores são menores que \040, ou \177
DEL
), espaço, til `~ `, circunflexo `^ `ou dois pontos `: `em qualquer lugar. -
Eles não podem ter ponto de interrogação
?
, asterisco*
ou colchete aberto[
em lugar nenhum. Consulte a opção--refspec-pattern
abaixo para ver uma exceção a esta regra. -
Eles não podem iniciar ou terminar com uma barra
/
ou conter múltiplas barras consecutivas (veja a opção--normalize
abaixo para uma exceção a esta regra). -
Eles não podem terminar com um ponto
.
. -
Eles não podem conter uma sequência
@{
. -
Eles não podem ser o único caractere
@
. -
Eles não podem conter um
\
.
Estas regras facilitam para as ferramentas com base em script shell a analise das referências dos nomes, a expansão de um nome do caminho pelo shell quando um nome de referência é utilizado sem aspas (por engano) e também para evitar as ambiguidades em certas expressões dos nomes das referências (consulte gitrevisions[7]) :
-
Um ponto duplo
..
é freqüentemente utilizado como em` ref1..ref2` e, em alguns contextos, essa notação significa^ref1 ref2
(isto é, não em` ref1` e emref2
). -
Um til
~
e um caractere circunflexo^
são utilizados para introduzir a operação do postfix nth parent e peel onion. -
Dois pontos
:
para indicar são usados como emsrcref:dstref
"use o valor de srcref e armazene-o em dstref" nas operações de busca e envio. Ele também pode ser usado para selecionar um objeto específico, como em git cat-file: "git cat-file blob v1.3.3:refs.c". -
at-open-brace
@{
é utilizado como uma notação para acessar uma entrada de reflog.
Com a opção --branch
, o comando recebe um nome e verifica se ele pode ser usado como um nome de ramo válido (por exemplo, ao criar um novo ramo). Mas tenha cuidado ao usar a sintaxe "checkout" anterior que pode se referir a um estado HEAD
desvinculado. A regra que o git check-ref-format --branch $name
implementa pode ser mais rígida do que o que o git check-ref-format refs/heads/$name
diz (um traço pode aparecer no início de um componente ref, mas é explicitamente proibido no início de um nome de ramo por exemplo). Quando executado com a opção --branch
num repositório, a entrada é primeiro expandida para a “sintaxe "checkout" anterior” @{-n}
. Por exemplo, @{-1}
é uma maneira de indicar a última coisa que foi verificada usando a operação "git switch" ou "git checkout". Essa opção deve ser usada pelas porcelanas para aceitar esta sintaxe em qualquer lugar onde se espera um nome do ramo, para que elas possam agir como se você tivesse digitado o nome do ramo. Como exceção, observe que a “operação de "checkout" anterior” pode resultar num nome de objeto commit quando a enésima última coisa baixada não for um ramo.
OPÇÕES
- --[no-]allow-onelevel
-
Controla se os refnames de um nível são aceitos (ou seja, refnames que não contêm vários componentes separados por
/
). A predefinição é--no-allow-onelevel
. - --refspec-pattern
-
Interprete <refname> como um padrão de nome de referência para um refspec (conforme é usado com repositórios remotos). Se esta opção estiver ativada, <refname> poderá conter um único
*
na refspec (foo/bar*/baz
oufoo/bar*baz/
, mas nãofoo/bar*/baz*
por exemplo). - --normalize
-
Normalize o refname removendo todos os caracteres de barra (
/
) à esquerda e reduzindo as séries de barras adjacentes entre os componentes do nome numa única barra. Se o refname normalizado for válido, imprima-o na saída predefinida e encerre com o a condição 0; caso contrário, encerre com uma condição diferente de zero. (a opção--print
é uma forma obsoleta de escrever--normalize
.)
EXEMPLOS
-
Imprima o nome da coisa anterior registrada:
$ git check-ref-format --branch @{-1}
-
Determine o nome de referência a ser utilizado para uma nova ramificação:
$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch")|| { echo "nós não gostamos do '$newbranch' como um nome do ramo." >&2 ; exit 1 ; }
GIT
Parte do conjunto git[1]