Git 🌙
Français ▾ Topics ▾ Latest version ▾ git-notes last updated in 2.44.0

NOM

git-notes - Ajouter ou inspecter les notes des objets

SYNOPSIS

git notes [list [<objet>]]
git notes add [-f] [--allow-empty] [--[no-]separator | --separator=<coupure-paragraphe>] [--[no-]stripspace] [-F <fichier> | -m <msg> | (-c | -C) <objet>] [<objet>]
git notes copy [-f] ( --stdin | <objet-source> [<objet-cible>] )
git notes append [--allow-empty] [--[no-]separator | --separator=<coupure-paragraphe>] [--[no-]stripspace] [-F <fichier> | -m <msg> | (-c | -C) <objet>] [<objet>]
git notes edit [--allow-empty] [<objet>]
git notes show [<objet>]
git notes merge [-v | -q] [-s <strategie> ] <ref-de-notes>
git notes merge --commit [-v | -q]
git notes merge --abort [-v | -q]
git notes remove [--ignore-missing] [--stdin] [<objet>…​]
git notes prune [-n] [-v]
git notes get-ref

DESCRIPTION

Ajoute, supprime ou lit les notes attachées aux objets, sans toucher les objets eux-mêmes.

Par dĂ©faut, les notes sont enregistrĂ©es et lues dans refs/notes/commits, mais cette valeur peut ĂŞtre modifiĂ©e. Voir les sections OPTIONS, CONFIGURATION, et ENVIRONNEMENT ci-dessous. Si cette rĂ©fĂ©rence n’existe pas, elle sera discrètement crĂ©Ă©e lorsqu’elle sera nĂ©cessaire pour stocker une note.

Une utilisation typique des notes est de complĂ©ter un message de validation sans modifier le commit lui-mĂŞme. Les notes peuvent ĂŞtre affichĂ©es par git log avec le message de validation original. Pour distinguer ces notes du message stockĂ© dans l’objet commit, les notes sont indentĂ©es comme le message, après une ligne non indentĂ©e disant "Notes (<nom-de-ref>) :" (ou "Notes :" pour refs/notes/commits).

Des notes peuvent Ă©galement ĂŞtre ajoutĂ©es aux rustines prĂ©parĂ©es avec git format-patch en utilisant l’option --notes. De telles notes sont ajoutĂ©es comme un commentaire de rustine après une ligne de sĂ©paration Ă  trois tirets.

Pour changer les notes qui sont affichées par git log, voir la discussion sur "notes.displayRef" dans CONFIGURATION.

Voir la configuration "notes.rewrite.<commande>" pour un moyen de transporter les notes à travers les commandes qui réécrivent les commits.

SOUS-COMMANDES

list

Affiche la liste des objets notes pour un objet donnĂ©. Si aucun objet n’est donnĂ©, affiche une liste de tous les objets notes et des objets qu’ils annotent (au format "<objet note> <objet annotĂ©>"). Il s’agit de la sous-commande par dĂ©faut si aucune sous-commande n’est donnĂ©e.

add

Ajouter des notes pour un objet donnĂ© (par dĂ©faut HEAD). Abandonner si l’objet a dĂ©jĂ  des notes (utilisez -f pour Ă©craser les notes existantes). Cependant, si vous utilisez add de manière interactive (en utilisant un Ă©diteur pour fournir le contenu des notes), alors - au lieu d’abandonner - les notes existantes seront ouvertes dans l’Ă©diteur (comme la sous-commande edit). Si vous spĂ©cifiez plusieurs -m et -F, une ligne vierge sera insĂ©rĂ©e entre les messages. Utilisez l’option --separator pour insĂ©rer d’autres dĂ©limiteurs.

copy

Copier les notes du premier objet sur le deuxième objet (par dĂ©faut HEAD). Abandonner si le second objet a dĂ©jĂ  des notes, ou si le premier objet n’en a pas (utilisez -f pour Ă©craser les notes existantes sur le second objet). Cette sous-commande est Ă©quivalente Ă  : git notes add [-f] -C $(git notes list <objet-source>) <objet-cible>

En mode --stdin, prendre les lignes au format

<objet-source> ESP <objet-source> [ ESP <reste> ] LF

sur l’entrĂ©e standard, et copier les notes de chaque <objet-source> vers son <objet-cible> correspondant. (Le`<rest>` optionnel est ignorĂ© afin que la commande puisse lire l’entrĂ©e donnĂ©e au crochet post-rewrite.)

append

Appliquer un ou plusieurs nouveaux messages donnĂ©s par des options -m ou -F Ă  une note existante, ou les ajouter comme une nouvelle note si aucune n’existe , pour l’objet (par dĂ©faut Ă  HEAD). Lorsqu’elle continue une note existante, une ligne vierge est ajoutĂ©e avant chaque nouveau message en tant que sĂ©parateur inter-paragraphe. Le sĂ©parateur peut ĂŞtre personnalisĂ© avec l’option --separator.

edit

Modifier les notes pour un objet donné (par défaut HEAD).

show

Afficher les notes pour un objet donné (par défaut, HEAD).

merge

Fusionner la référence de notes donnée dans la référence de notes actuelle. Cette commande essaiera de fusionner les modifications apportées par la référence de notes donnée (appelée "remote") depuis la base de fusion (si elle existe) dans la référence de notes actuelle (appelée "local").

Si des conflits surviennent et qu’une stratĂ©gie pour rĂ©soudre automatiquement les notes en conflit (voir la section "STRATEGIES DE FUSION DES NOTES") n’est pas donnĂ©e, le rĂ©solveur "manuel" est utilisĂ©. Ce rĂ©solveur vĂ©rifie les notes en conflit dans un arbre de travail spĂ©cial (.git/NOTES_MERGE_WORKTREE), et demande Ă  l’utilisateur de rĂ©soudre manuellement les conflits Ă  cet endroit. Lorsque cela est fait, l’utilisateur peut soit finaliser la fusion avec git notes merge --commit, soit abandonner la fusion avec git notes merge --abort.

remove

Supprimer les notes pour les objets donnĂ©s (la valeur par dĂ©faut est HEAD). Lorsque l’on donne zĂ©ro ou un objet depuis la ligne de commande, cela Ă©quivaut Ă  spĂ©cifier un message de note vide Ă  la sous-commande edit.

prune

Supprimer toutes les notes relatives aux objets inexistants ou inaccessibles.

get-ref

Afficher la référence des notes actuelles. Ceci fournit un moyen facile de récupérer la référence des notes actuelles (par exemple, à partir de scripts).

OPTIONS

-f
--force

Lors de l’ajout de notes Ă  un objet qui en possède dĂ©jĂ , les notes existantes sont Ă©crasĂ©es (au lieu d’ĂŞtre abandonnĂ©es).

-m <msg>
--message=<msg>

Utiliser le message de note fourni (au lieu de le demander). Si plusieurs options -m sont fournies, leurs valeurs sont concaténées comme paragraphes séparés. Les lignes commençant par # et les lignes vides sont supprimées si elles ne sont pas uniques entre paragraphes. Si vous souhaitez les garder verbatim, utilisez --no-stripspace.

-F <fichier>
--file=<fichier>

Prendre le message de note depuis le fichier indiquĂ©. Utilisez - pour lire le message depuis l’entrĂ©e standard. Les lignes commençant par # et les lignes vides sont supprimĂ©es si elles ne sont pas uniques entre paragraphes. Si vous souhaitez les garder verbatim, utilisez --no-stripspace.

-C <objet>
--reuse-message=<objet>

Prendre l’objet blob donnĂ© (par exemple, une autre note) comme message de note. (Utilisez git notes copy <objet> au lieu de copier les notes entre les objets). Par dĂ©faut, le message sera copiĂ© verbatim, mais si vous souhaitez supprimer les lignes commençant par # et les lignes vides autres que les lignes uniques entre les paragraphes, utilisez l’option --stripspace.

-c <objet>
--reedit-message=<objet>

Comme -C, mais avec -c, l’Ă©diteur est appelĂ© pour permettre Ă  l’utilisateur de modifier le message de note.

--allow-empty

Permettre de stocker un objet note vide. Le comportement par défaut consiste à supprimer automatiquement les notes vides.

--[no-]separator, --separator=<coupure-paragraphe>

SpĂ©cifier une chaĂ®ne utilisĂ©e comme sĂ©parateur d’inter-paragraphe personnalisĂ© (une nouvelle ligne est ajoutĂ©e Ă  la fin si nĂ©cessaire). Si --no-separator , aucun sĂ©parateur ne sera ajoutĂ© entre les paragraphes. Par dĂ©faut, la valeur est une ligne vierge.

--[no-]stripspace

Éliminer les espaces précédant et suivant le message de note. Également éliminer les lignes vides autres que les lignes uniques entre les paragraphes. Les lignes commençant par # seront nettoyées dans des cas sans éditeur comme -m, -F et -C, mais pas dans les cas avec éditeur comme git notes edit, -c, etc.

--ref <réf>

Manipuler l’arbre des notes dans <rĂ©f>. Ceci a prioritĂ© sur GIT_NOTES_REF et la configuration "core.notesRef". La rĂ©f spĂ©cifie le nom complet de la rĂ©f quand elle commence par refs/notes/ ; quand elle commence par notes/, refs/ ou autre, refs/notes/ est prĂ©fixĂ© pour former un nom complet de la rĂ©f.

--ignore-missing

Ne pas considĂ©rer comme une erreur de demander la suppression des notes d’un objet qui n’a pas de notes qui lui sont attachĂ©es.

--stdin

Lire Ă©galement les noms d’objets pour supprimer les notes Ă  partir de l’entrĂ©e standard (il n’y a aucune raison pour que vous ne puissiez pas combiner cela avec les noms d’objets Ă  partir de la ligne de commande).

-n
--dry-run

Ne rien supprimer ; signaler simplement les noms des objets dont les notes seraient supprimées.

-s <stratégie>
--strategy=<strategie>

Lors d’une fusion de notes, rĂ©soudre les conflits de notes en utilisant la stratĂ©gie donnĂ©e. Les stratĂ©gies suivantes sont reconnues : "manual" (par dĂ©faut), "ours", "theirs", "union" et "cat_sort_uniq". Cette option a prioritĂ© sur le paramètre de configuration "notes.mergeStrategy". Voir la section "STRATÉGIES DE FUSION DES NOTES" ci-dessous pour plus d’informations sur chaque stratĂ©gie de fusion des notes.

--commit

Finaliser une fusion de notes en cours. Utilisez cette option lorsque vous avez résolu les conflits que git notes merge a stockés dans .git/NOTES_MERGE_WORKTREE. Cela modifie le commit de fusion partielle créé par git notes merge (stocké dans .git/NOTES_MERGE_PARTIAL) en ajoutant les notes dans .git/NOTES_MERGE_WORKTREE. La référence des notes stockée dans la réf symbolique .git/NOTES_MERGE_REF est mise à jour avec le commit résultant.

--abort

Abandonner/rĂ©initialiser un git notes merge en cours, c’est-Ă -dire une fusion de notes avec des conflits. Cela supprime simplement tous les fichiers liĂ©s Ă  la fusion de notes.

-q
--quiet

Mode silencieux lors d’une fusion de notes.

-v
--verbose

Mode verbeux lors d’une fusion de notes. Lors de l’Ă©lagage des notes, signaler tous les noms d’objets dont les notes sont supprimĂ©es.

DISCUSSION

Les notes de commit sont des blobs contenant des informations supplĂ©mentaires sur un objet (gĂ©nĂ©ralement des informations pour complĂ©ter le message de validation). Ces blobs sont extraits des rĂ©fs de notes. Une rĂ©f. de notes est gĂ©nĂ©ralement une branche qui contient des "fichiers" dont les chemins sont les noms des objets qu’ils dĂ©crivent, avec quelques sĂ©parateurs de rĂ©pertoires inclus pour des raisons de performances [1].

Chaque changement de notes crĂ©e un nouveau commit Ă  la rĂ©f. de notes spĂ©cifiĂ©e. Vous pouvez donc inspecter l’historique des notes en invoquant, par exemple, git log -p notes/commits. Actuellement, le message de validation n’enregistre que l’opĂ©ration qui a dĂ©clenchĂ© la mise Ă  jour, et la paternitĂ© du commit est dĂ©terminĂ©e selon les règles habituelles (voir git-commit[1]). Ces dĂ©tails peuvent changer dans le futur.

Il est Ă©galement permis qu’une rĂ©f de notes pointe directement vers un objet arbre, dans ce cas l’historique des notes peut ĂŞtre lu avec git log -p -g <nom-de-rĂ©f>.

STRATÉGIES DE FUSION DES NOTES

La stratĂ©gie de fusion de notes par dĂ©faut est "manual", qui extrait les notes en conflit dans un arbre de travail spĂ©cial pour rĂ©soudre les conflits de notes (.git/NOTES_MERGE_WORKTREE), et demande Ă  l’utilisateur de rĂ©soudre les conflits dans cet arbre de travail. Lorsque cela est fait, l’utilisateur peut soit finaliser la fusion avec git notes merge --commit, soit abandonner la fusion avec git notes merge --abort.

Les utilisateurs peuvent sĂ©lectionner une stratĂ©gie de fusion automatisĂ©e parmi les suivantes en utilisant l’option -s/--strategy ou en configurant notes.mergeStrategy :

"ours" rĂ©sout automatiquement les conflits de notes en faveur de la version locale (c’est-Ă -dire la rĂ©f. de notes actuelle).

"theirs" rĂ©sout automatiquement les conflits de notes en faveur de la version distante (c’est-Ă -dire que la rĂ©fĂ©rence de notes donnĂ©e est fusionnĂ©e avec la rĂ©fĂ©rence de notes actuelle).

"union" résout automatiquement les conflits de notes en concaténant les versions locales et distantes.

"cat_sort_uniq" est similaire Ă  "union", mais en plus de concatĂ©ner les versions locales et distantes, cette stratĂ©gie trie Ă©galement les lignes rĂ©sultantes, et supprime les lignes en double du rĂ©sultat. Cela Ă©quivaut Ă  appliquer le pipeline shell "cat | sort | uniq" aux versions locales et distantes. Cette stratĂ©gie est utile si les notes suivent un format basĂ© sur les lignes et que l’on veut Ă©viter les lignes dupliquĂ©es dans le rĂ©sultat de la fusion. Notez que si la version locale ou distante contient des lignes dupliquĂ©es avant la fusion, celles-ci seront Ă©galement supprimĂ©es par cette stratĂ©gie de fusion de notes.

EXEMPLES

Vous pouvez utiliser les notes pour ajouter des annotations avec des informations qui n’Ă©taient pas disponibles au moment oĂą le commit a Ă©tĂ© Ă©crit.

$ git notes add -m 'Tested-by: Johannes Sixt <j6t@kdbg.org>' 72a144e2
$ git show -s 72a144e
[...]
    Signed-off-by: Junio C Hamano <gitster@pobox.com>

Notes:
    Tested-by: Johannes Sixt <j6t@kdbg.org>

En principe, une note est un blob Git ordinaire, et tout type de (non-)format est accepté. Vous pouvez créer des notes binaires de manière sûre à partir de fichiers arbitraires en utilisant git hash-object :

$ cc *.c
$ blob=$(git hash-object -w a.out)
$ git notes --ref=built add --allow-empty -C "$blob" HEAD

(Vous ne pouvez pas simplement utiliser git notes --ref=built add -F a.out HEAD car cela n’est pas binairement sĂ»r). Bien sĂ»r, cela n’a pas beaucoup de sens d’afficher des notes qui ne sont pas au format texte avec "git log", donc si vous utilisez de telles notes, vous aurez probablement besoin d’Ă©crire des outils spĂ©ciaux pour en faire quelque chose d’utile.

CONFIGURATION

core.notesRef

RĂ©f. de notes Ă  lire et Ă  manipuler Ă  la place de refs/notes/commits. Doit ĂŞtre un nom de rĂ©fĂ©rence non abrĂ©gĂ©. Ce paramètre peut ĂŞtre remplacĂ© via l’environnement et la ligne de commande.

Warning

Missing fr/includes/cmd-config-section-rest.txt

See original version for this content.

Warning

Missing fr/config/notes.txt

See original version for this content.

ENVIRONNEMENT

GIT_NOTES_REF

La référence dont les notes doivent être manipulées, au lieu de refs/notes/commits. Ceci remplace le paramètre core.notesRef.

GIT_NOTES_DISPLAY_REF

Liste de refs ou de globs dĂ©limitĂ©s par des colonnes indiquant les rĂ©fs, en plus de la valeur par dĂ©faut de core.notesRef ou de GIT_NOTES_REF, Ă  partir desquelles lire les notes lors de l’affichage des messages de validation. Ceci surcharge le paramètre notes.displayRef.

Un avertissement sera Ă©mis pour les rĂ©fs qui n’existent pas, mais un glob qui ne correspond Ă  aucune rĂ©f est silencieusement ignorĂ©.

GIT_NOTES_REWRITE_MODE

Lors de la copie de notes pendant une réécriture, action à faire si le commit cible a déjà une note. Doit être parmi overwrite, concatenate, cat_sort_uniq, ou ignore. Ceci surcharge le paramètre core.rewriteMode.

GIT_NOTES_REWRITE_REF

Lors de la rĂ©Ă©criture de commits, quelles notes copier de l’original vers le commit rĂ©Ă©crit. Doit ĂŞtre une liste de refs ou de globs dĂ©limitĂ©e par deux points.

Si elle n’est pas dĂ©finie dans l’environnement, la liste des notes Ă  copier dĂ©pend des paramètres notes.rewrite.<commande> et notes.rewriteRef.

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 .


1. Les noms de chemins autorisĂ©s ont la forme bf/fe/30/…​/680d5a…​ : une sĂ©quence de noms de rĂ©pertoires de deux chiffres hexadĂ©cimaux chacun suivis d’un nom de fichier avec le reste de l’ID de l’objet
scroll-to-top