Git 🌙
Français ▾ Topics ▾ Latest version ▾ git-check-ref-format last updated in 2.43.0

NOM

git-check-ref-format - S’assure qu’un nom de rĂ©fĂ©rence est bien formĂ©

SYNOPSIS

git check-ref-format [--normalize]
       [--[no-]allow-onelevel] [--refspec-pattern]
       <nom-de-réf>
git check-ref-format --branch <raccourcis-de-nom-de-branche>

DESCRIPTION

VĂ©rifie si un nom-de-rĂ©f donnĂ© est acceptable, et se termine avec un statut non nul si ce n’est pas le cas.

Une rĂ©fĂ©rence est utilisĂ©e dans Git pour spĂ©cifier des branches et des Ă©tiquettes. Une tĂŞte de branche est stockĂ©e dans la hiĂ©rarchie refs/heads, tandis qu’une Ă©tiquette est stockĂ©e dans la hiĂ©rarchie refs/tags de l’espace de noms ref (typiquement dans les rĂ©pertoires $GIT_DIR/refs/heads et $GIT_DIR/refs/tags ou, comme entrĂ©es dans le fichier $GIT_DIR/packed-refs si les refs sont empaquetĂ©es par git gc).

Git impose les règles suivantes sur la façon dont les références sont nommées :

  1. Elles peuvent inclure des barres obliques / pour un regroupement hiérarchique (répertoire), mais aucun composant séparé par une barre oblique ne peut commencer par un point . ou se terminer par la séquence .lock.

  2. Elles doivent contenir au moins un /. Cela impose la prĂ©sence d’une catĂ©gorie comme heads/, tags/ etc. mais les noms rĂ©els ne sont pas limitĂ©s. Si l’option --allow-onelevel est utilisĂ©e, cette règle est levĂ©e.

  3. Elles ne peuvent avoir deux points consécutifs .. nulle part.

  4. Elles ne peuvent pas contenir de caractères de contrĂ´le ASCII (c’est-Ă -dire des octets dont la valeur est infĂ©rieure Ă  \040, ou \177 DEL), d’espace, de tilde ~, de circonflexe ^, ou de deux-points :.

  5. Elles ne peuvent pas avoir de point d’interrogation ?, d’astĂ©risque *, ou de crochet ouvert [ n’importe oĂą. Voir l’option --refspec-pattern ci-dessous pour une exception Ă  cette règle.

  6. Elles ne peuvent pas commencer ou finir par une barre oblique / ou contenir plusieurs barres obliques consĂ©cutives (voir l’option --normalize ci-dessous pour une exception Ă  cette règle).

  7. Elles ne peuvent pas se terminer par un point ..

  8. Elles ne peuvent pas contenir une séquence @{.

  9. Elles ne peuvent pas être le caractère unique @.

  10. Elles ne peuvent pas contenir de \.

Ces règles facilitent l’analyse des noms de rĂ©fĂ©rence par les outils basĂ©s sur des scripts shell, l’expansion des noms de chemin par le shell lorsqu’un nom de rĂ©fĂ©rence est utilisĂ© sans ĂŞtre protĂ©gĂ© par des quotes (par erreur), et Ă©vitent Ă©galement les ambiguĂŻtĂ©s dans certaines expressions de noms de rĂ©fĂ©rence (voir gitrevisions[7]) :

  1. Un double point .. est souvent utilisĂ© comme dans ref1..ref2, et dans certains contextes cette notation signifie ^ref1 ref2 (c’est-Ă -dire pas dans ref1 et dans ref2).

  2. Un tilde ~ et un circonflexe ^ sont utilisĂ©s pour introduire le postfixe nième parent et l’opĂ©ration peler l’oignon.

  3. Un deux-points : est utilisé comme dans srcref:dstref pour signifier « utiliser la valeur de srcref et la stocker dans dstref » dans les opérations fetch et push. Il peut également être utilisé pour sélectionner un objet spécifique, comme avec git cat-file : "git cat-file blob v1.3.3:refs.c".

  4. L’accolade ouverte @{ est utilisĂ©e comme notation pour accĂ©der Ă  une entrĂ©e reflog.

Avec l’option --branch, la commande prend un nom et vĂ©rifie s’il peut ĂŞtre utilisĂ© comme un nom de branche valide (par exemple lors de la crĂ©ation d’une nouvelle branche). Mais soyez prudent lorsque vous utilisez la syntaxe de vĂ©rification prĂ©cĂ©dente qui peut faire rĂ©fĂ©rence Ă  un Ă©tat HEAD dĂ©tachĂ©. L’implantation de la règle git check-ref-format --branch $nom peut ĂŞtre plus stricte que ce que dit git check-ref-format refs/heads/$nom (par exemple, un tiret peut apparaĂ®tre au dĂ©but d’un composant ref, mais il est explicitement interdit au dĂ©but d’un nom de branche). Lorsqu’il est exĂ©cutĂ© avec l’option --branch dans un dĂ©pĂ´t, l’entrĂ©e est d’abord dĂ©veloppĂ©e pour la “syntaxe de l’extraction prĂ©cĂ©dente” @{-n}. Par exemple, @{-1} est un moyen de faire rĂ©fĂ©rence Ă  la dernière chose qui a Ă©tĂ© extraite en utilisant l’opĂ©ration "git switch" ou "git checkout". Cette option devrait ĂŞtre utilisĂ©e par les commandes porcelaines pour accepter cette syntaxe partout oĂą un nom de branche est attendu, afin qu’elles puissent agir comme si vous aviez tapĂ© le nom de la branche. A titre d’exception, notez que "l’opĂ©ration d’extraction prĂ©cĂ©dente" peut rĂ©sulter en un nom d’objet commit lorsque la N-ième dernière chose extraite n’Ă©tait pas une branche.

OPTIONS

--[no-]allow-onelevel

ContrĂ´ler si les noms de rĂ©fĂ©rence Ă  un niveau sont acceptĂ©s (c’est-Ă -dire les noms de rĂ©fĂ©rence qui ne contiennent pas plusieurs composants sĂ©parĂ©s par des /). La valeur par dĂ©faut est --no-allow-onelevel.

--refspec-pattern

Interpréter <nom-de-réf> comme un modèle de nom de référence pour un spécificateur de référence (comme utilisé avec les dépôts distants). Si cette option est activée, <nom-de-réf> est autorisé à contenir un seul * dans le spécificateur de référence (par exemple, foo/bar*/baz ou foo/bar*baz/ mais pas foo/bar*/baz*).

--normalize

Normaliser nom-de-rĂ©f en supprimant les barres obliques (/) de tĂŞte et en regroupant les barres obliques adjacentes entre les composants du nom en une seule barre oblique. Si le nom de rĂ©fĂ©rence normalisĂ© est valide, il est imprimĂ© sur la sortie standard et sort avec un statut de 0, sinon, il sort avec un statut non nul. (--print est une façon dĂ©prĂ©ciĂ©e d’Ă©peler --normalize).

EXEMPLES

  • Afficher le nom de la dernière chose extraite :

    $ git check-ref-format --branch @{-1}
  • DĂ©terminer le nom de rĂ©fĂ©rence Ă  utiliser pour une nouvelle branche :

    $ ref=$(git check-ref-format --normalize "refs/heads/$nouvellebranche")||
    { echo "nous n'aimons pas '$nouvellebranche' comme nom de branche". >&2 ; exit 1 ; }

GIT

Fait partie de la suite git[1]

TRADUCTION

Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .

scroll-to-top