Git 🌙
Français â–Ÿ Topics â–Ÿ Latest version â–Ÿ git-commit last updated in 2.46.1

NOM

git-commit - Enregistrer les modifications dans le dépÎt

SYNOPSIS

git commit [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]
	   [--dry-run] [(-c | -C | --squash) <commit>] | --fixup [(amend|reword):]<commit>]
	   [-F <fichier> | -m <msg>] [--reset-author] [--allow-empty]
	   [--allow-empty-message] [--no-verify] [-e] [--author=<auteur>]
	   [--date=<date>] [--cleanup=<mode>] [--[no-]status]
	   [-i | -o] [--pathspec-from-file=<fichier> [--pathspec-file-nul]]
	   [(--trailer <token>[(=|:)<valeur>])…​] [-S[<idclĂ©>]]
	[--] [<spec-de-chemin>…​]

DESCRIPTION

CrĂ©e un nouveau commit contenant le contenu actuel de l’index et avec le message de validation dĂ©crivant la modification. Le nouveau commit est un fils direct de HEAD, habituellement au sommet de la branche actuelle et la branche est mise Ă  jour pour pointer dessus (Ă  moins qu’aucune branche ne soit associĂ©e avec l’arbre de travail actuel, auquel cas HEAD est « dĂ©tachĂ©e » comme dĂ©crit dans git-checkout[1]).

Le contenu Ă  valider peut ĂȘtre spĂ©cifiĂ© de diffĂ©rentes maniĂšres :

  1. en utilisant git-add[1] pour « ajouter » de maniĂšre incrĂ©mentale des modifications Ă  l’index avant d’utiliser la commande commit (Note : les fichiers doivent ĂȘtre « ajoutĂ©s » pour faire partie du commit, mĂȘme s’ils ont Ă©tĂ© modifiĂ©s);

  2. en utilisant git-rm[1] pour supprimer des fichiers de l’arbre de travail et de l’index, encore une fois avant d’utiliser la commande commit;

  3. en listant les fichiers comme arguments de la commande commit (sans les options --interactive ou --patch), auquel cas la validation ignorera les modifications indexĂ©es et enregistrera plutĂŽt le contenu actuel des fichiers listĂ©s (qui doivent ĂȘtre dĂ©jĂ  connus de Git);

  4. en utilisant l’option -a avec la commande commit pour « ajouter » automatiquement les modifications de tous les fichiers connus (c’est-Ă -dire les fichiers dĂ©jĂ  listĂ©s dans l’index) et supprimer (rm) automatiquement les fichiers de l’index qui ont Ă©tĂ© supprimĂ©s dans l’arbre de travail, puis d’effectuer la validation ;

  5. en utilisant les options --interactive ou --patch avec la commande commit pour choisir quels fichiers ou sections de fichier doivent ĂȘtre inclus dans le commit en plus de l’index, avant finalisation de l’opĂ©ration. RĂ©fĂ©rez-vous Ă  la section « Mode interactif » de git-add[1] pour la description de ces modes.

L’option --dry-run peut ĂȘtre utilisĂ©e pour obtenir un rĂ©sumĂ© de ce qui sera inclus par une des commandes ci-dessus pour la prochaine validation en fournissant le mĂȘme jeu de paramĂštres (options et chemins).

Si vous validez et trouvez une erreur immédiatement aprÚs, vous pouvez annuler la validation avec git reset.

OPTIONS

-a
--all

Indiquer Ă  la commande d’indexer automatiquement les fichiers qui ont Ă©tĂ© modifiĂ©s ou supprimĂ©s, mais les nouveaux fichiers dont vous n’avez pas signalĂ© la prĂ©sence Ă  Git ne sont pas affectĂ©s.

-p
--patch

Utiliser la sélection interactive de correctif pour choisir quelles modifications valider. Référez-vous à git-add[1] pour plus de détails.

-C <commit>
--reuse-message=<commit>

Prendre un objet commit existant et rĂ©utiliser son message de validation et son information d’auteur (y compris l’horodatage) pour la crĂ©ation du commit.

-c <commit>
--reedit-message=<commit>

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

--fixup=[(amend|reword):]<commit>

Créer un nouveau commit qui « répare » <commit> quand il est appliqué avec git rebase --autosquash`. Un simple --fixup=<commit> crée un commit "fixup!" qui change le contenu de <commit> mais laisse son message de validation inchangé. --fixup=amend:<commit> est similaire mais crée un commit "amend!" qui remplace aussi le message de validation de <commit> par le message de validation du commit "amend!". --fixup=reword:<commit> crée un commit "amend!" qui remplace le message de validation de <commit> par son propre message de log mais ne fait aucun changement au contenu de <commit>.

Le commit crĂ©Ă© par le simple --fixup=<commit> a un sujet composĂ© de "fixup !" suivi de la ligne de sujet de <commit>, et est reconnu spĂ©cialement par git rebase --autosquash. L’option -m peut ĂȘtre utilisĂ©e pour complĂ©ter le message du journal du commit crĂ©Ă©, mais le commentaire supplĂ©mentaire sera jetĂ© une fois que le commit "fixup !" sera Ă©crasĂ© dans <commit> par git rebase --autosquash.

Le commit crĂ©Ă© par --fixup=amend:<commit> est similaire mais son sujet est Ă  la place prĂ©fixĂ© par "amend !". Le message de validation de <commit> est copiĂ© dans le message de validation du commit "amend !" et ouvert dans un Ă©diteur afin qu’il puisse ĂȘtre affinĂ©. Lorsque git rebase --autosquash Ă©crase le commit "amend !" dans <commit>, le message de validation de <commit> est remplacĂ© par le message de validation raffinĂ© du commit "amend !". C’est une erreur si le message du journal du commit "amend !" est vide, Ă  moins que --allow-empty-message soit spĂ©cifiĂ©.

--fixup=reword:<commit> est un raccourci pour --fixup=amend:<commit> --only. Il crĂ©e un commit "amend !" qui touche seulement au message de validation (en ignorant les changements mis en place dans l’index). Lorsqu’il est Ă©crasĂ© par git rebase --autosquash, il remplace le message du validation de <commit> sans faire d’autres changements.

Ni les commits "fixup!" ni les commits "amend!" ne changent la paternité de <commit> quand ils sont appliqués par git rebase --autosquash. Voir git-rebase[1] pour plus de détails.

--squash=<commit>

Construire un message de validation pour une utilisation avec rebase --autosquash. La ligne de titre du message de validation est tirĂ©e du commit spĂ©cifiĂ© prĂ©fixĂ©e par « squash! ». Peut ĂȘtre utilisĂ©e avec d’autres options de commit (-m/-c/-C/-F). RĂ©fĂ©rez-vous Ă  git-rebase[1] pour plus de dĂ©tails.

--reset-author

Utilisé avec les options -C/-c/--amend ou lors de validation aprÚs un picorage conflictuel, déclarer que la paternité du commit résultant appartient à présent au validateur avec un horodatage mis à jour.

--short

Lors d’un essai sans effet, fournir la sortie en format court. Voir git-status[1] pour plus de dĂ©tails. implique --dry-run.

--branch

Montrer la branche et l’information de suivi, y compris en format court.

--porcelain

Lors d’un essai sans effet, fournir la sortie en format prĂȘt pour la porcelaine. Voir git-status[1] pour plus de dĂ©tails. implique --dry-run.

--long

Avec --dry-run, donner la sortie en format long. Implique --dry-run.

-z
--null

Avec les sorties de statut short ou porcelain, afficher le nom du fichier textuellement et terminer par NUL, au lieu de LF. Si aucun format n’est spĂ©cifiĂ©, implique le format de sortie --porcelain. Sans l’option -z, les noms de fichier contenant des caractĂšres « inhabituels » sont indiquĂ©s selon la variable de configuration core.quotePath (voir git-config[1]).

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

Prendre le message de validation depuis le fichier indiquĂ©. Utilisez - pour lire le message depuis l’entrĂ©e standard.

--author=<auteur>

Surcharger l’auteur du commit. SpĂ©cifier un auteur explicite avec le format standard PrĂ©nom Nom <auteur@exemple.com>. Sinon <auteur> est considĂ©rĂ© comme un patron utilisĂ© pour chercher un commit existant par cet auteur (c-Ă -d rev-list --all -i --author=<auteur>) ; l’auteur du commit est alors copiĂ© depuis le premier commit trouvĂ©.

--date=<date>

Surcharger la date d’auteur utilisĂ©e dans le commit.

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

Utiliser le <msg> fourni comme message de validation. Si plusieurs options -m sont fournies, leurs valeurs sont concaténées comme paragraphes séparés.

L’option -m est incompatible avec -c, -C ou -F.

-t <fichier>
--template=<fichier>

À l’Ă©dition du message de validation, dĂ©marrer l’Ă©diteur avec le contenu du fichier indiquĂ©. La variable de configuration commit.template est souvent utilisĂ©e pour fournir implicitement cette option Ă  la commande. Ce mĂ©canisme peut ĂȘtre utilisĂ© par les projets qui souhaitent guider les collaborateurs avec une aide sur ce qu’il faut Ă©crire dans le message et dans quel ordre. Si l’utilisateur sort de l’Ă©diteur sans changer le message, la validation est annulĂ©e. Ceci n’a aucun effet quand un message est fourni par un autre moyen, par exemple par les options -m ou -F.

-s
--signoff
--no-signoff

Ajouter une ligne finale Signed-off-by du validateur Ă  la fin du message de validation. La signification de signoff dĂ©pend du projet sur lequel vous validez. Par exemple, cela peut certifier que le validateur a le droit de soumettre son travail sous la licence du projet ou accepte une certaine reprĂ©sentation du contributeur, tel qu’un Certificat d’Origine de DĂ©veloppeur. (Voir https://developercertificate.org/ pour celui utilisĂ© par les projet du noyau Linux ou de Git). Consultez la documentation ou la direction du projet auquel vous contribuez pour comprendre comment les signatures sont utilisĂ©es dans ce projet.

L’option --no-signoff peut ĂȘtre utilisĂ©e pour contrecarrer une option --signoff prĂ©cĂ©dente sur la ligne de commande.

--trailer <jeton>[(=| :)<valeur>]

SpĂ©cifier une paire (<jeton>, <valeur>) qui doit ĂȘtre appliquĂ©e comme une ligne terminale (par exemple, git commit --trailer "Signed-off-by:C O Mitter \ <committer@example.com>" --trailer "Helped-by:C O Mitter \ <committer@example.com>" ajoutera la ligne terminale "Signed-off-by" et la ligne terminale "Helped-by" au message de validation). Les variables de configuration trailer.* (git-interpret-trailers[1]) peuvent ĂȘtre utilisĂ©es pour dĂ©finir si une ligne terminale dupliquĂ©e est omise, ou oĂč chaque ligne terminale apparaĂźtrait dans la sĂ©rie de lignes terminales, et d’autres dĂ©tails.

-n
--[no-]verify

Par dĂ©faut, les crochets pre-commit et commit-msg sont exĂ©cutĂ©s. Lorsque l’une des options --no-verify ou -n est donnĂ©e, ils sont contournĂ©s. Voir aussi githooks[5].

--allow-empty

En gĂ©nĂ©ral, enregistrer un commit qui pointe sur la mĂȘme version que son unique parent est une erreur et la commande vous empĂȘche de crĂ©er un tel commit. Cette option court-circuite cette sĂ©curitĂ© et sert principalement dans les scripts d’interface avec d’autres SCM (Software Configuration Management, gestion de configuration logicielle).

--allow-empty-message

Comme --allow-empty, cette commande est principalement utilisĂ©e par les scripts d’interface avec d’autres SCM (Software Configuration Management, gestion de configuration logicielle). Elle vous permet de crĂ©er un commit avec un message vide sans utiliser de commande de plomberie telle que git-commit-tree[1].

--cleanup=<mode>

Cette option dĂ©termine comment le message de validation fourni doit ĂȘtre nettoyĂ© avant la validation. Le <mode> peut ĂȘtre strip, whitespace, verbatim, scissors ou default.

strip

Supprimer les lignes vides de début et de fin, les espaces, les commentaires et réduire les lignes vides consécutives à une seule.

whitespace

Identique à strip sauf que les #commentaires ne sont pas supprimés.

verbatim

Laisser le message inchangé.

scissors

Identique Ă  whitespace, Ă  l’exception que tout Ă  partir de la ligne ci-dessous (incluse) sera Ă©liminĂ© si le message est Ă©ditĂ©. "#" peut ĂȘtre personnalisĂ© grĂące Ă  core.commentChar.

# ------------------------ >8 ------------------------
default

Identique à strip si le messages est édité. Sinon whitespace.

La valeur par dĂ©faut peut ĂȘtre modifiĂ©e par la variable de configuration commit.cleanup (voir git-config[1]).

-e
--edit

Le message tirĂ© d’un fichier avec -F, ou de la ligne de commande avec -m, ou depuis un objet commit avec -C est gĂ©nĂ©ralement utilisĂ© sans modification. Cette option permet d’Ă©diter au passage le message tirĂ© de ces sources.

--no-edit

Utiliser le message de validation sĂ©lectionnĂ© sans lancer d’Ă©diteur. Par exemple, git commit --amend --no-edit corrige un commit sans changer son message de validation.

--amend

Remplacer le sommet de la branche actuelle en crĂ©ant un nouveau commit. L’arbre enregistrĂ© est prĂ©parĂ© comme d’habitude (incluant l’effet des options -i et -o et les spĂ©cificateurs explicites de chemin) et le message du commit originel est utilisĂ© comme point de dĂ©part au lieu d’un message vide, quand aucun autre message n’est spĂ©cifiĂ© Ă  la ligne de commande via des options telles que -m, -F, -c, etc. Le nouveau commit a les mĂȘmes parents et auteur que l’originel (l’option --reset-author peut modifier l’auteur).

C’est un Ă©quivalent grossier de :

	$ git reset --soft HEAD^
	$ ... faire autre chose pour obtenir l'arbre correct ...
	$ git commit -c ORIG_HEAD

mais peut ĂȘtre utilisĂ© pour corriger un commit de fusion.

Vous devriez comprendre les implications d’une rĂ©Ă©criture de l’historique si vous modifiez un commit qui a dĂ©jĂ  Ă©tĂ© publiĂ©. (Voir la section « RATTRAPPER UN REBASAGE AMONT » dans git-rebase[1].)

--no-post-rewrite

Court-circuiter le crochet post-rewrite.

-i
--include

Avant de crĂ©er un commit Ă  partir du contenu indexĂ© jusqu’Ă  prĂ©sent, indexer aussi les contenus des chemins fournis sur la ligne de commande. Cela n’est habituellement pas ce que vous souhaitez, Ă  part si vous terminez une fusion conflictuelle.

-o
--only

RĂ©aliser une validation en prenant le contenu de l’arbre de travail des chemins spĂ©cifiĂ©s sur la ligne de commande, en ignorant tout contenu d’autres chemins dĂ©jĂ  indexĂ©. C’est le mode d’opĂ©ration par dĂ©faut de git commit si des chemins sont fournis sur la ligne de commande, auquel cas l’option peut ĂȘtre omise. Si cette option est spĂ©cifiĂ©e en mĂȘme temps que --amend, alors il n’est pas nĂ©cessaire de spĂ©cifier des chemins, ce qui peut ĂȘtre utile pour corriger le dernier commit sans valider les modifications qui ont dĂ©jĂ  Ă©tĂ© indexĂ©es. Si utilisĂ© avec --allow-empty, les chemins ne sont pas nĂ©cessaires non plus et un commit vide sera crĂ©Ă©.

--pathspec-from-file=<fichier>

Le spĂ©cificateur de chemin est passĂ© dans <fichier> au lieu des arguments de la ligne de commande. Si <fichier> vaut - alors l’entrĂ©e standard est utilisĂ©e. Les Ă©lĂ©ments du spĂ©cificateur de chemin sont sĂ©parĂ©s par LF ou CR/LF. Les Ă©lĂ©ments du spĂ©cificateur de chemin peuvent ĂȘtre citĂ©s comme expliquĂ© pour la variable de configuration core.quotePath (voir git-config[1]). Voir aussi l’option --pathspec-file-nul et l’option globale --literal-pathspecs.

--pathspec-file-nul

Uniquement significatif avec --pathspec-from-file. Les éléments du spécificateur de chemin sont séparés par le caractÚre NUL et tous les autres caractÚres sont utilisés littéralement (y compris les retours à la ligne et les guillemets).

-u[<mode>]
--untracked-files[=<mode>]

Montrer les fichiers non-suivis.

Le paramĂštre de mode est optionnel (par dĂ©faut, all) et sert Ă  spĂ©cifier la gestion des fichiers non suivis ; quand -u n’est pas utilisĂ©, le mode par dĂ©faut est normal, c’est-Ă -dire montrer les fichiers et les dossiers non-suivis.

Les options possibles sont :

  • no - Ne montrer aucun fichier non-suivi

  • normal - Montrer les fichiers non-suivis et les dossiers dont le contenu est non-suivi

  • all - Montrer aussi les fichiers dans les dossiers dont le contenu n’est pas suivi.

Toutes les expressions pour la valeur booléenne true sont interprétées comme normal et false comme no. La valeur par défaut est contenue dans la variable de configuration status.showUntrackedFiles documentée dans git-config[1].

-v
--verbose

Afficher en bas du modĂšle de message de validation un diff unifiĂ© entre le commit HEAD et ce qui serait validĂ© pour aider l’utilisateur Ă  dĂ©crire le commit en lui rappelant les modifications qui seront validĂ©es. Veuillez noter que cette sortie de diff n’est pas prĂ©fixĂ©e par des #. Elle ne fera pas pour autant partie du message de validation. RĂ©fĂ©rez-vous Ă  la variable de configuration commit.verbose dans git-config[1].

Si spĂ©cifiĂ© deux fois, afficher en plus le diff unifiĂ© entre ce qui serait validĂ© et les fichiers de l’arbre de travail, c’est-Ă -dire les modifications non-indexĂ©es des fichiers suivis.

-q
--quiet

Supprimer le message de résumé de commit.

--dry-run

Ne pas créer de commit, mais montrer une liste des chemins qui seront validés, une de ceux contenant des modifications locales et qui ne seront pas validés, et une de ceux non-suivis.

--status

Inclure la sortie de git-status[1] dans le modĂšle de message de validation lors de l’utilisation d’un Ă©diteur pour prĂ©parer le message de validation. ActivĂ© par dĂ©faut, mais peut surcharger la variable de configuration commit.status.

--no-status

Ne pas inclure la sortie de git-status[1] dans le modĂšle de message de validation lors de l’utilisation d’un Ă©diteur pour prĂ©parer le message de validation par dĂ©faut.

-S[<idclé>]
--gpg-sign[=<idclé>]
--no-gpg-sign

Signer les commits avec GPG. L’argument idclĂ© est optionnel avec par dĂ©faut l’identitĂ© du validateur ; si spĂ©cifiĂ©e, elle doit ĂȘtre collĂ©e Ă  l’option sans aucun espace. --no-gpg-sign est utile pour annuler l’effet de la variable de configuration commit.gpgSign ainsi que tout --gpg-sign prĂ©cĂ©dent.

--

Ne pas interpréter les arguments qui suivent comme options.

<spĂ©cificateur de chemin>…​

Quand un spécifcateur de chemins est fourni sur la ligne de commande, valider le contenu des fichiers correspondants, sans enregistrer les modifications déjà indexées. Le contenu de ces fichiers est aussi indexé pour le commit suivant par-dessus ce qui a été indexé auparavant.

Pour plus de dĂ©tail, voir l’entrĂ©e spĂ©cificateur de chemin dans gitglossary[7].

EXEMPLES

Lors de l’enregistrement de votre propre travail, le contenu des fichiers modifiĂ©s dans votre arbre de travail est temporairement stockĂ© au moyen de git add dans une zone de stockage intermĂ©diaire appelĂ©e « l’index ». Un fichier peut n’ĂȘtre ramenĂ© Ă  son contenu correspondant au dernier commit seulement dans l’index mais pas dans l’arbre de travail grĂące Ă  git restore --staged <fichier>, ce qui inverse effectivement le git add et empĂȘche les modifications de ce fichier de participer Ă  la prochaine validation. AprĂšs avoir construit l’Ă©tat Ă  valider de maniĂšre incrĂ©mentale avec ces commandes, git commit (sans aucun nom de chemin en paramĂštre) sert Ă  enregistrer ce qui a Ă©tĂ© prĂ©parĂ© jusqu’ici. C’est la forme la plus simple de la commande. Par exemple :

$ edit hello.c
$ git rm goodbye.c
$ git add hello.c
$ git commit

Au lieu d’indexer les fichiers aprĂšs chaque modification individuelle, vous pouvez ordonner Ă  git commit d’inspecter les modifications des fichiers dont le contenu est dĂ©jĂ  suivi dans votre arbre de travail et de rĂ©aliser les git add et git rm correspondant pour vous. De fait, l’exemple suivant fait la mĂȘme chose que l’exemple prĂ©cĂ©dent si aucune autre modification n’a eu lieu dans votre arbre de travail :

$ edit hello.c
$ rm goodbye.c
$ git commit -a

La commande git commit -a inspecte votre arbre de travail, remarque que vous avez modifié hello.c et supprimé goodbye.c, puis réalise les git add et git rm nécessaires pour vous.

AprĂšs l’indexation des modifications de nombreux fichiers, vous pouvez modifier l’ordre dans lequel les modifications sont enregistrĂ©es, en fournissant des chemins Ă  git commit. Quand ces chemins sont fournis, la commande crĂ©e un commit qui n’enregistre que les modifications des chemins indiquĂ©s :

$ edit hello.c hello.h
$ git add hello.c hello.h
$ edit Makefile
$ git commit Makefile

Ceci crĂ©e un commit qui enregistre les modifications de Makefile. Les modifications indexĂ©es pour hello.c et hello.h ne sont pas incluses dans le commit rĂ©sultant. Cependant, leurs modifications ne sont pas perdues — elles sont toujours indexĂ©es et simplement suspendues. AprĂšs la sĂ©quence ci-dessus, si vous faites :

$ git commit

cette seconde validation enregistrerait les modifications de hello.c et hello.h comme attendu.

AprĂšs l’arrĂȘt d’une fusion (commencĂ©e avec git merge ou git pull) pour cause de conflit, les chemins fusionnĂ©s proprement sont dĂ©jĂ  indexĂ©s pour vous, et les chemins en conflit sont laissĂ©s dans un Ă©tat non-fusionnĂ©. Vous auriez Ă  chercher d’abord les chemins en conflit avec git status et aprĂšs les avoir corrigĂ©s manuellement dans votre copie de travail, vous les indexeriez comme d’habitude avec git add :

$ git status | grep unmerged
unmerged: hello.c
$ edit hello.c
$ git add hello.c

AprĂšs avoir rĂ©solu les conflits et indexĂ© le rĂ©sultat, git ls-files -u arrĂȘterait de mentionner les chemins en conflit. Quand vous avez terminĂ©, lancez git commit pour finaliser la validation de la fusion :

$ git commit

Comme dans le cas de la validation de vos propres modifications, vous pouvez utiliser l’option -a pour vous Ă©pargner de la frappe. Une diffĂ©rence est que pendant la rĂ©solution de fusion, vous ne pouvez pas utiliser git commit avec des noms de chemin pour changer l’ordre des modifications Ă  valider, parce que la fusion doit ĂȘtre enregistrĂ©e comme un commit unique. En fait, la commande refuse d’ĂȘtre lancĂ©e avec des noms de chemin (voir par contre l’option -i).

INFORMATION DE VALIDATION

Les informations sur les auteurs et les validateurs sont tirĂ©es des variables d’environnement suivantes, si elles sont dĂ©finies :

GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
GIT_AUTHOR_DATE
GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL
GIT_COMMITTER_DATE

(nota bene "<", ">" et "\n"s sont supprimés)

Les noms de l’auteur et du validateur sont par convention une forme de nom personnel (c’est-Ă -dire le nom par lequel les autres humains vous dĂ©signent), bien que Git n’impose ou n’exige aucune forme particuliĂšre. N’importe quel unicode peut ĂȘtre utilisĂ©, sous rĂ©serve des contraintes Ă©numĂ©rĂ©es ci-dessus. Ce nom n’a aucun effet sur l’authentification ; pour cela, voir la variable credential.username dans git-config[1].

Dans le cas oĂč (certaines de) ces variables d’environnement ne sont pas dĂ©finies, les informations sont prises Ă  partir des Ă©lĂ©ments de configuration user.name et user.email, ou, si elle n’est pas prĂ©sente, la variable d’environnement EMAIL, ou, si ce n’est pas rĂ©glĂ©, le nom d’utilisateur du systĂšme et le nom d’hĂŽte utilisĂ© pour le courrier sortant (pris depuis /etc/mailname et ou par dĂ©faut le nom d’hĂŽte entiĂšrement qualifiĂ© lorsque ce fichier n’existe pas).

Les options author.name et committer.name et leurs options de courrier Ă©lectronique correspondantes remplacent les options user.name et user.email si elles sont dĂ©finies et sont elles-mĂȘmes remplacĂ©es par les variables d’environnement.

L’utilisation typique consiste Ă  dĂ©finir uniquement les variables user.name et user.email ; les autres options sont fournies pour les cas d’utilisation plus complexes.

FORMATS DE DATE

Les variables d’environnement GIT_AUTHOR_DATE et GIT_COMMITTER_DATE supportent les formats de date suivants :

Format interne de Git

Il est de la forme <horodatage-unix> <dĂ©calage-de-fuseau-horaire>, oĂč <horodatage-unix> est un nombre de secondes depuis l’Ă©poque UNIX. <dĂ©calage-de-fuseau-horaire> est un dĂ©calage positif ou nĂ©gative par rapport Ă  UTC. Par exemple, CET (qui est en avance d’une heure sur UTC) est +0100.

RFC 2822

Le standard de format de date tel que décrit par la RFC 2822, par exemple Thu, 07 Apr 2005 22:13:13 +0200.

ISO 8601

Les heures et les dates sont spĂ©cifiĂ©es par le standard ISO 8601, par exemple 2005-04-07T22:13:13. L’analyseur accepte aussi un espace au lieu du caractĂšre T. Les parties fractionnelles d’une seconde seront ignorĂ©es, par exemple, 2005-04-07T22:13:13.019 sera considĂ©rĂ© comme Ă©tant 2005-04-07T22:13:13.

Note
De plus, la partie date est acceptée dans les formats suivants : AAAA.MM.JJ, MM/JJ/AAAA et JJ.MM.AAAA.

En plus de reconnaĂźtre tous les formats de date ci-dessus, l’option --date essaiera Ă©galement de donner un sens Ă  d’autres formats de date plus humainement comprĂ©hensibles, tels que les dates relatives comme "yesterday" ou "last Friday at noon".

DISCUSSION

Bien que ça ne soit pas requis, c’est une bonne pratique de commencer les messages de validation avec une seule ligne courte (pas plus de 50 caractĂšres) pour rĂ©sumer la modification, suivie d’une ligne blanche, suivie d’un description plus prĂ©cise. Le texte jusqu’Ă  la ligne vide du message de validation est traitĂ© comme le titre du commit, et ce titre est utilisĂ© extensivement dans Git. Par exemple, git-format-patch[1] transforme un commit en courriel et utilise le titre comme sujet et le reste du texte comme corps.

Git est dans une certaine mesure agnostique concernant l’encodage des caractĂšres.

  • Le contenu des objets blob est une sĂ©quence d’octets non interprĂ©tĂ©s. Il n’y a pas de conversion d’encodage au niveau de base.

  • Les noms de chemins sont encodĂ©s en forme C de normalisation UTF-8. Ceci s’applique aux objets arbre, au fichier d’index, au noms de rĂ©fĂ©rences ainsi qu’aux noms de chemin en argument de ligne de commande, aux variables d’environnement et aux fichiers de configuration (.git/config (voir git-config[1]), gitignore[5], gitattributes[5] and gitmodules[5]).

    Remarquez que Git traite les noms de chemins comme des sĂ©quences d’octets non-nuls au niveau de base, il n’y a pas de conversion d’encodage des noms de fichiers (sauf sur Mac et Windows). De ce fait, l’utilisation de noms de chemins non-ASCII fonctionnera pratiquement, mĂȘme sur les plateformes et systĂšmes de fichier utilisant d’anciens encodages d’ASCII Ă©tendu.

  • Les messages du journal des validations sont typiquement encodĂ©s en UTF-8, mais les autres encodages d’ASCII Ă©tendu sont aussi pris en charge. Ceci inclut ISO-8859-x, CP125x et de nombreux autres, mais pas UTF-16/32, EBCDIC ni les encodages multi-octets CJK (GBK, Shift-JIS, Big5, EUC-x, CP9xx etc.).

Bien que l’usage de UTF-8 dans les messages de validation soit encouragĂ©, le cƓur de Git et la porcelaine sont conçus pour ne pas forcer l’usage d’UTF-8 dans les projets. Si tous les participants d’un projet donnĂ© trouvent plus simple d’utiliser des encodages anciens, Git ne l’interdit pas. Cependant, il y a quelques dĂ©tails Ă  garder en tĂȘte.

  1. git commit et git commit-tree affichent un avertissement si le message de validation fourni ne semble pas ĂȘtre une chaĂźne de caractĂšres UTF-8 valide, Ă  moins que vous n’indiquiez explicitement que votre projet utilise un encodage ancien. La maniĂšre de l’indiquer est d’avoir i18n.commitEncoding dans .git/config, comme ceci :

    [i18n]
    	commitEncoding = ISO-8859-1

    Les objets commit crĂ©Ă©s avec le rĂ©glage ci-dessus enregistrent la valeur de i18n.commitEncoding dans leur entĂȘte d’encodage encoding. Ceci permet d’aider les personnes qui les liront plus tard. L’absence de cet entĂȘte implique que les message de validation est encodĂ© en UTF-8.

  2. Sauf indication contraire, git log, git show, git blame et consort lisent l’entĂȘte encoding d’un objet commit et essaient de rĂ©-encoder le message de validation en UTF-8. Vous pouvez spĂ©cifier l’encodage de sortie que vous souhaitez avec i18n.logOutputEncoding dans le fichier .git/config, comme ceci :

    [i18n]
    	logOutputEncoding = ISO-8859-1

    Si vous n’avez pas changĂ© cette variable de configuration, c’est la valeur de i18n.commitEncoding qui est utilisĂ©e.

Remarquez qu’il a Ă©tĂ© dĂ©libĂ©rĂ©ment choisi de ne pas rĂ©-encoder le message de validation quand le commit est crĂ©Ă© pour forcer l’UTF-8 au niveau de l’objet commit parce que rĂ©-encoder en UTF-8 n’est pas nĂ©cessairement une opĂ©ration rĂ©versible.

ENVIRONNEMENT ET VARIABLES DE CONFIGURATION

L’Ă©diteur utilisĂ© pour Ă©diter le message de validation sera choisi dans l’ordre de recherche depuis la variable d’environnement GIT_EDITOR, puis depuis la variable de configuration core.editor, puis depuis la variable d’environnement VISUAL ou la variable d’environnement EDITOR. Voir git-var[1] pour plus de dĂ©tails.

Warning

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

See original version for this content.

Warning

Missing fr/config/commit.txt

See original version for this content.

CROCHETS

Cette commande peut lancer les crochets commit-msg, prepare-commit-msg, pre-commit, post-commit et post-rewrite. Voir githooks[5] pour de plus amples informations.

FICHIERS

$GIT_DIR/COMMIT_EDITMSG

Ce fichier contient le message de validation en cours. Si git commit sort Ă  cause d’une erreur avant de crĂ©er un commit, tout message de validation fourni par l’utilisateur (par exemple dans une session d’Ă©diteur) sera disponible dans ce fichier, mais sera Ă©crasĂ© par l’invocation suivante de git commit.

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