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.44.1 → 2.47.0 no changes
- 2.44.0 02/23/24
- 2.43.1 → 2.43.5 no changes
- 2.43.0 11/20/23
- 2.42.1 → 2.42.3 no changes
- 2.42.0 08/21/23
- 2.38.1 → 2.41.2 no changes
- 2.38.0 10/02/22
- 2.29.1 → 2.37.7 no changes
- 2.29.0 10/19/20
- 2.25.1 → 2.28.1 no changes
- 2.25.0 01/13/20
- 2.22.1 → 2.24.4 no changes
- 2.22.0 06/07/19
- 2.19.1 → 2.21.4 no changes
- 2.19.0 09/10/18
- 2.17.0 → 2.18.5 no changes
- 2.16.6 12/06/19
- 2.15.4 no changes
- 2.14.6 12/06/19
- 2.10.5 → 2.13.7 no changes
- 2.9.5 07/30/17
- 2.8.6 07/30/17
- 2.7.6 no changes
- 2.6.7 05/05/17
- 2.4.12 → 2.5.6 no changes
- 2.3.10 09/28/15
- 2.1.4 → 2.2.3 no changes
- 2.0.5 12/17/14
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 utilisezadd
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-commandeedit
). 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 commegit 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 parrefs/notes/
 ; quand elle commence parnotes/
,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
Warning
|
Missing See original version for this content. |
Warning
|
Missing 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ètrecore.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 deGIT_NOTES_REF
, Ă partir desquelles lire les notes lors de l’affichage des messages de validation. Ceci surcharge le paramètrenotes.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
, ouignore
. Ceci surcharge le paramètrecore.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>
etnotes.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 .
/
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