Français ▾ Topics ▾ Latest version ▾ git-update-ref last updated in 2.53.0

NOM

git-update-ref - Mettre à jour le nom d’objet stocké dans une réf. de façon sécurisée

SYNOPSIS

git update-ref [-m <reason>] [--no-deref] -d <réf> [<ancien-oid>]
git update-ref [-m <reason>] [--no-deref] [--create-reflog] <réf> <nouveau-oid> [<ancien-oid>]
git update-ref [-m <reason>] [--no-deref] --stdin [-z] [--batch-updates]

DESCRIPTION

Étant donnés deux arguments, stocke le <new-oid> dans la <ref>, éventuellement en désréférençant les refs symboliques. Par exemple git update-ref HEAD <new-oid> met à jour la tête de la branche actuelle vers le nouvel objet.

Étant donnés trois arguments, stocke le <new-oid> dans la <ref>, éventuellement en désréférençant les refs symboliques, après avoir vérifié que la valeur actuelle de la <ref> correspond à <old-oid>. Par exemple git update-ref refs/heads/master <new-oid> <old-oid> met à jour la tête de la branche master vers <new-oid> uniquement si sa valeur actuelle est <old-oid>. Vous pouvez spécifier 40 "0" ou une chaîne vide comme <old-oid> pour vous assurer que la référence que vous créez n’existe pas.

Les arguments finaux sont des noms d’objet ; cette commande sans aucune option ne supporte pas la mise à jour d’une référence symbolique pour pointer vers une autre référence (voir git-symbolic-ref[1]). Mais git update-ref --stdin possède les commandes symref-* de sorte que les références régulières et les références symboliques peuvent être validées dans la même transaction.

Si --no-deref est donné, la <ref> elle-même est écrasée, plutôt que le résultat du suivi des pointeurs symboliques.

Avec -d, elle supprime la <réf.> nommée après avoir vérifié qu’elle contient toujours l'<ancien-oid>.

Avec --stdin, update-ref lit les instructions depuis l’entrée standard et effectue toutes les modifications ensemble. Spécifiez les commandes sous la forme :

update SP <ref> SP <new-oid> [SP <old-oid>] LF
create SP <ref> SP <new-oid> LF
delete SP <ref> [SP <old-oid>] LF
verify SP <ref> [SP <old-oid>] LF
symref-update SP <ref> SP <new-target> [SP (ref SP <old-target> | oid SP <old-oid>)] LF
symref-create SP <ref> SP <new-target> LF
symref-delete SP <ref> [SP <old-target>] LF
symref-verify SP <ref> [SP <old-target>] LF
option SP <opt> LF
start LF
prepare LF
commit LF
abort LF

Avec --create-reflog, update-ref créera un journal de référence pour chaque référence même si un ne serait pas ordinairement créé.

Avec --batch-updates, update-ref exécute les mises à jour en lot mais permet aux mises à jour individuelles d’échouer en raison d’une entrée utilisateur invalide ou incorrecte, n’appliquant que les mises à jour réussies. Cependant, les erreurs liées au système — telles que les échecs d’E/S ou les problèmes de mémoire — entraîneront un échec complet de toutes les mises à jour groupées. Toute mise à jour échouée sera signalée selon le format suivant :

rejected SP (<ancien-oid> | <ancienne-cible>) SP (<nouveau-oid> | <nouvelle-cible>) SP <raison-du-rejet> LF

Entourez les champs contenant des caractères d’espacement comme s’ils étaient des chaînes dans du code source C ; c’est-à-dire, entourés de guillemets doubles et avec des échappements par barre oblique inversée. Utilisez 40 caractères "0" ou la chaîne vide pour spécifier une valeur zéro. Pour spécifier une valeur manquante, omettez la valeur et son SP précédant entièrement.

Alternativement, utilisez -z pour spécifier le format terminé par NUL, sans guillemets :

update SP <ref> NUL <new-oid> NUL [<old-oid>] NUL
create SP <ref> NUL <new-oid> NUL
delete SP <ref> NUL [<old-oid>] NUL
verify SP <ref> NUL [<old-oid>] NUL
symref-update SP <ref> NUL <new-target> [NUL (ref NUL <old-target> | oid NUL <old-oid>)] NUL
symref-create SP <ref> NUL <new-target> NUL
symref-delete SP <ref> [NUL <old-target>] NUL
symref-verify SP <ref> [NUL <old-target>] NUL
option SP <opt> NUL
start NUL
prepare NUL
commit NUL
abort NUL

Dans ce format, utilisez 40 "0" pour spécifier une valeur zéro, et utilisez la chaîne vide pour spécifier une valeur manquante.

Dans les deux formats, les valeurs peuvent être spécifiées sous toute forme que Git reconnaît comme un nom d’objet. Les commandes dans tout autre format ou une <ref> répétée produisent une erreur. Les significations des commandes sont :

update

Définir la <ref> sur <new-oid> après avoir vérifié <old-oid>, si donné. Spécifier un <new-oid> zéro pour s’assurer que la référence n’existe pas après la mise à jour et/ou un <old-oid> zéro pour s’assurer que la référence n’existe pas avant la mise à jour.

create

Créer la <ref> avec <new-oid> après avoir vérifié qu’elle n’existe pas. Le <new-oid> donné ne peut pas être zéro.

delete

Supprimer la <ref> après avoir vérifié qu’elle existe avec <old-oid>, si donné. Si donné, <old-oid> ne peut pas être zéro.

symref-update

Définir <ref> à <new-target> après avoir vérifié <old-target> ou <old-oid>, si fourni. Spécifier un <old-oid> à zéro pour s’assurer que la réf n’existe pas avant la mise à jour.

verify

Vérifier <ref> par rapport à <old-oid> sans la modifier. Si <old-oid> est zéro ou manquant, la réf ne doit pas exister.

symref-create

Créer une réf symbolique <ref> avec <new-target> après avoir vérifié qu’elle n’existe pas.

symref-delete

Supprimer <ref> après avoir vérifié qu’elle existe avec <old-target>, si fourni.

symref-verify

Vérifier la réf symbolique <ref> par rapport à <old-target> sans la modifier. Si <old-target> est manquant, la réf ne doit pas exister. Ne peut être utilisé qu’en mode no-deref.

option

Modifier le comportement de la prochaine commande nommant une <ref>. La seule option valide est no-deref pour éviter de déréférencer une réf symbolique.

start

Démarrer une transaction. Contrairement à une session non transactionnelle, une transaction s’arrêtera automatiquement si la session se termine sans un commit explicite. Cette commande peut créer une nouvelle transaction vide lorsque la courante a déjà été committée ou arrêtée.

prepare

Préparer à valider la transaction. Cela créera les fichiers de verrouillage pour toutes les mises à jour de références en file d’attente. Si une référence ne peut pas être verrouillée, la transaction sera arrêtée.

valider

Valider toutes les mises à jour de références en file d’attente pour la transaction, terminant la transaction.

abort

Arrêter la transaction, en libérant tous les verrous si la transaction est dans l’état préparé.

Si toutes les <ref>s peuvent être verrouillées avec des <old-oid>s correspondants simultanément, toutes les modifications sont effectuées. Sinon, aucune modification n’est effectuée. Notez que bien que chaque <ref> individuelle soit mise à jour ou supprimée de manière atomique, un lecteur concurrent peut toujours voir un sous-ensemble des modifications.

MISES À JOUR DU JOURNAL

Si le paramètre de configuration "core.logAllRefUpdates" est vrai et la réf est l’une de "refs/heads/", "refs/remotes/", "refs/notes/", ou un pseudoréf comme HEAD ou ORIG_HEAD ; ou le fichier "$GIT_DIR/logs/<ref>" existe, alors git update-ref ajoutera une ligne au fichier journal "$GIT_DIR/logs/<ref>" (en déréférencant toutes les réfs symboliques avant de créer le nom du journal) décrivant le changement de valeur de la réf. Les lignes du journal sont formatées comme :

oldsha1 SP newsha1 SP committer LF

Où "oldsha1" est la valeur hexadécimale de 40 caractères précédemment stockée dans <ref>, "newsha1" est la valeur hexadécimale de 40 caractères de <new-oid> et "committer" est le nom du validateur, l’adresse email et la date au format standard d’identité de validateur Git.

Optionnellement avec -m :

oldsha1 SP newsha1 SP committer TAB message LF

Où tous les champs sont tels que décrits ci-dessus et "message" est la valeur fournie à l’option -m.

Une mise à jour échouera (sans changer <ref>) si l’utilisateur actuel ne peut pas créer un nouveau fichier journal, ajouter au fichier journal existant ou n’a pas les informations de validateur disponibles.

NOTES

Les réf. symboliques ont été initialement implémentées en utilisant des liens symboliques. Cela est maintenant obsolète puisque tous les systèmes de fichiers ne supportent pas les liens symboliques.

Cette commande ne suit les liens symboliques réels que s’ils commencent par "refs/" : sinon, elle essaiera simplement de les lire et de les mettre à jour comme un fichier régulier (c’est-à-dire qu’elle permettra au système de fichiers de les suivre, mais écrasera un tel lien symbolique vers un autre endroit avec un nom de fichier régulier).

VOIR AUSSI

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 .