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.51.0
2025-08-18
- 2.49.1 â 2.50.1 no changes
-
2.49.0
2025-03-14
- 2.48.1 â 2.48.2 no changes
-
2.48.0
2025-01-10
- 2.46.2 â 2.47.3 no changes
-
2.46.1
2024-09-13
-
2.46.0
2024-07-29
- 2.45.4 no changes
-
2.45.3
2024-11-26
- 2.45.1 â 2.45.2 no changes
-
2.45.0
2024-04-29
- 2.44.1 â 2.44.4 no changes
-
2.44.0
2024-02-23
- 2.43.1 â 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.42.2 â 2.42.4 no changes
-
2.42.1
2023-11-02
-
2.42.0
2023-08-21
- 2.41.1 â 2.41.3 no changes
-
2.41.0
2023-06-01
- 2.40.1 â 2.40.4 no changes
-
2.40.0
2023-03-12
- 2.37.3 â 2.39.5 no changes
-
2.37.2
2022-08-11
- 2.36.1 â 2.37.1 no changes
-
2.36.0
2022-04-18
- 2.35.1 â 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.34.1 â 2.34.8 no changes
-
2.34.0
2021-11-15
- 2.33.3 â 2.33.8 no changes
-
2.33.2
2022-03-23
-
2.33.1
2021-10-12
-
2.33.0
2021-08-16
- 2.32.1 â 2.32.7 no changes
-
2.32.0
2021-06-06
- 2.31.1 â 2.31.8 no changes
-
2.31.0
2021-03-15
- 2.30.1 â 2.30.9 no changes
-
2.30.0
2020-12-27
- 2.29.1 â 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.27.1 no changes
-
2.27.0
2020-06-01
- 2.26.1 â 2.26.3 no changes
-
2.26.0
2020-03-22
- 2.25.2 â 2.25.5 no changes
-
2.25.1
2020-02-17
-
2.25.0
2020-01-13
- 2.24.1 â 2.24.4 no changes
-
2.24.0
2019-11-04
- 2.22.1 â 2.23.4 no changes
-
2.22.0
2019-06-07
- 2.21.1 â 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.20.1 â 2.20.5 no changes
-
2.20.0
2018-12-09
- 2.19.1 â 2.19.6 no changes
-
2.19.0
2018-09-10
- 2.18.1 â 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.1 â 2.17.6 no changes
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
-
2.11.4
2017-09-22
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.7.6 no changes
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
-
2.2.3
2015-09-04
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
SYNOPSIS
git diff-tree [--stdin] [-m] [-s] [-v] [--no-commit-id] [--pretty] [-t] [-r] [-c | --cc] [--combined-all-paths] [--root] [--merge-base] [<options-diff-usuelles>] <arbre-esque> [<arbre-esque>] [<chemin>âŠâ]
DESCRIPTION
Comparer le contenu et le mode des blobs trouvés via deux objets arbre.
Sâil nây a quâun seul <arbre-esque>donnĂ©, le commit est comparĂ© avec ses parents (voir --stdin ci-dessous).
Notez que git diff-tree peut utiliser lâarbre encapsulĂ© dans un objet commit.
OPTIONS
-
-p
-
-u
-
--patch
-
Générer la rustine (voir Génération du texte de rustine avec -p).
-
-s
-
--no-patch
-
Supprimer la sortie de la machinerie diff. Utile pour éliminer la sortie des commandes telles que
git
show
qui affichent la rustine par dĂ©faut, ou pour supprimer lâeffet dâoptions telles que--patch
, `--stat`qui auraient pu ĂȘtre incluse plus tĂŽt sur la ligne de commande via un alias. -
-U
<n> -
--unified=
<n> -
Générer des diffs avec <n> lignes de contexte au lieu des trois habituelles. Implique
--patch
. -
--output=
<fichier> -
Sortie vers un fichier spécifique au lieu de stdout.
-
--output-indicator-new=
<caractĂšre> -
--output-indicator-old=
<caractĂšre> -
--output-indicator-context=
<caractĂšre> -
SpĂ©cifier le caractĂšre utilisĂ© pour indiquer les lignes nouvelles, anciennes ou contextuelles dans la rustine gĂ©nĂ©rĂ©e. Normalement, il sâagit de
+
,-
et ' ' respectivement. -
--raw
-
GenĂ©rer la diff en format brut. Câest lâoption par dĂ©faut.
-
--patch-with-raw
-
Synonyme de
-p
--raw
. -
--indent-heuristic
-
Activer lâheuristique qui dĂ©cale les limites des sections de diff pour rendre les rustines plus faciles Ă lire. Câest lâoption par dĂ©faut.
-
--no-indent-heuristic
-
DĂ©sactiver lâheuristique dâindentation.
-
--minimal
-
Passer plus de temps pour sâassurer que le diff le plus petit possible est produit.
-
--patience
-
GĂ©nĂ©rer un diff en utilisant lâalgorithme « patience diff ».
-
--histogram
-
GĂ©nĂ©rer un diff en utilisant lâalgorithme « diff histogramme ».
-
--anchored=
<texte> -
GĂ©nĂ©rer un diff en utilisant lâalgorithme « diff ancrĂ© ».
Cette option peut ĂȘtre spĂ©cifiĂ©e plus dâune fois.
Si une ligne existe dans la source et la destination, nâexiste quâune seule fois, et commence par <texte>, cet algorithme tente dâempĂȘcher quâelle apparaisse comme une suppression ou une addition dans la sortie. Lâalgorithme « patience diff » est utilisĂ© en interne.
-
--diff-algorithm=
(patience
|minimal
|histogram
|myers
) -
Choisir un algorithme de diff. Les variantes sont comme suit :
-
default
-
myers
-
Lâalgorithme de diff avide. Câest actuellement celui par dĂ©faut.
-
minimal
-
Passer plus de temps pour sâassurer que le diff le plus petit possible est produit.
-
patience
-
Utiliser lâalgorithme « patience diff » pour la gĂ©nĂ©ration de rustine.
-
histogram
-
Cet algorithme Ă©tend lâalgorithme patience pour « supporter les Ă©lĂ©ments communs de faible frĂ©quence ».
Par exemple, si vous avez configuré la variable
diff.algorithm
Ă une valeur autre que celle par dĂ©faut et souhaitez utiliser la valeur par dĂ©faut, alors vous devez utiliser lâoption--diff-algorithm=default
. -
-
--stat
[=
<largeur>[,
<largeur-de-nom>[,
<nombre>]]] -
GĂ©nĂ©rer un diffstat. Par dĂ©faut, autant dâespace que nĂ©cessaire sera utilisĂ© pour la partie du nom de fichier et le reste pour la partie de graphe. La largeur maximum est par dĂ©faut la largeur du terminal, ou 80 colonnes si non connectĂ© Ă un terminal, et peut ĂȘtre outrepassĂ© avec <largeur>. La largeur du nom de fichier peut ĂȘtre limitĂ©e en fournissant une autre largeur <largeur-de-nom> aprĂšs une virgule ou en rĂ©glant
diff.statNameWidth=
<largeur>. La largeur de la partie du graphe peut ĂȘtre limitĂ©e en utilisant--stat-graph-width=
<largeur-de-graphe> ou en réglantdiff.statGraphWidth=
<largeur-de-graphe>. Lâutilisation de--stat
ou--stat-graph-width
affecte toutes les commandes qui génÚrent un graphique de stat, tandis que réglerdiff.statNameWidth
ordiff.statGraphWidth
nâaffecte pasgit
format-patch
. En ajoutant un troisiĂšme paramĂštre <nombre>, vous pouvez limiter la sortie aux premiĂšres <nombre> lignes, suivies de ... sâil y en a plus.Ces paramĂštres peuvent aussi ĂȘtre positionnĂ©s individuellement avec
--stat-width=
<largeur>,--stat-name-width=
<largeur-de-nom> et--stat-count=
<nombre>. -
--compact-summary
-
Afficher un rĂ©sumĂ© condensĂ© de lâinformation dâentĂȘte Ă©tendu telle que les crĂ©ations ou les suppressions de fichier (« nouveau » ou « disparu », optionnellement
+l
si câest un lien symbolique) et les modifications de mode (+x
ou-x
pour lâajout et la suppression du bit exĂ©cutable respectivement) dans le diffstat. Lâinformation est affichĂ©e entre la partie nom de fichier et la partie graphe. Implique--stat
. -
--numstat
-
Similaire Ă
--stat
, mais afficher le nombre de lignes ajoutées ou supprimées en notation décimale et le nom de chemin sans abréviation, pour le rendre plus facile à traiter automatiquement. Pour les fichiers binaires, affiche deux-
au lieu de0
0
. -
--shortstat
-
Nâaffiche que la derniĂšre ligne du format
--stat
contenant le nombre total de fichiers modifiĂ©s, de mĂȘme que le nombre de lignes ajoutĂ©es et supprimĂ©es. -
-X
[<param>,...
] -
--dirstat
[=
<param>,...
] -
Afficher la distribution de la quantité relative de modifications pour chaque sous-répertoire. Le comportement de
--dirstat
peut ĂȘtre personnalisĂ© en lui passant une liste de paramĂštres sĂ©parĂ©s par des virgules. Les valeurs par dĂ©faut sont contrĂŽlĂ©es par la variable de configurationdiff.dirstat
(voir git-config[1]). Les paramĂštres suivants sont disponiblesâŻ:-
changes
-
Calculer les valeurs de dirstat en comptant les lignes supprimĂ©es de la source ou ajoutĂ©es dans la destination. Ceci ignore la quantitĂ© de purs mouvements de code dans un fichier. En dâautres termes, le rĂ©arrangement de lignes dans un fichier nâest pas comptĂ© autant que les autres modifications. Câest le comportement par dĂ©faut quand aucun paramĂštre nâest fourni.
-
lines
-
Calculer les valeurs dirstat en faisant lâanalyse diff normal par ligne, et en additionnant les totaux de lignes ajoutĂ©es/supprimĂ©es. (Pour les fichiers binaires, compter plutĂŽt les sections de 64 octets, puisque les fichiers binaires nâont pas de concept de ligne). Câest un comportement de
--dirstat
plus onéreux que le comportementchanges
, mais il compte les lignes rĂ©arrangĂ©es dans un fichier autant que les autres modifications. La sortie rĂ©sultante est cohĂ©rente avec ce que vous obtiendriez avec dâautres options--*stat
. -
files
-
Calculer les valeurs dirstat en comptant le nombre de fichiers changĂ©s. Chaque fichier modifiĂ© compte de façon Ă©gale dans lâanalyse dirstat. Câest le comportement
--dirstat
le moins cher en termes de calcul, puisquâil nâa pas du tout besoin dâanalyser le contenu du fichier. -
cumulative
-
Compter les modifications dans un rĂ©pertoire enfant pour le rĂ©pertoire parent. Notez quâen utilisant
cumulative
, la somme des pourcentages constatĂ©s peut dĂ©passer 100 %. Le comportement par dĂ©faut (non cumulatif) peut ĂȘtre spĂ©cifiĂ© avec le paramĂštrenoncumulative
. - <limite>
-
Un paramÚtre entier qui spécifie un pourcentage limite (3% par défaut). Les répertoires contribuant moins que ce pourcentage de modifications ne sont pas affichés dans la sortie.
Exemple : ce qui suit va compter les fichiers modifiés, tout en ignorant les répertoires qui contiennent moins de 10 % de la quantité totale de fichiers modifiés et en accumulant les totaux des répertoires enfants dans les répertoires parents :
--dirstat=files,10,cumulative
. -
-
--cumulative
-
Synonyme de
--dirstat=cumulative
. -
--dirstat-by-file
[=
<param>,...
] -
Synonyme de
--dirstat=files,
<param>,...
. -
--summary
-
Afficher un rĂ©sumĂ© condensĂ© dâinformation dâentĂȘte Ă©tendu tel que les crĂ©ations, les renommages et les modifications de mode.
-
--patch-with-stat
-
Synonyme de
-p
--stat
. -
-z
-
Quand
--raw
,--numstat
,--name-only
ou--name-status
a été fourni, ne pas modifier les noms de chemin et utiliser des NULs comme terminateurs de champs.Sans cette option, les noms de chemin avec des caractÚres « inhabituels » sont cités comme expliqué pour la variable de configuration
core.quotePath
(voir git-config[1]). -
--name-only
-
Afficher uniquement le nom de chaque fichier modifiĂ© dans lâarbre post-image. Les noms de fichiers sont souvent encodĂ©s en UTF-8. Le dĂ©finir sur
none
rend la sortie de blĂąme des donnĂ©es non converties. Pour plus dâinformations, voir la discussion sur lâencodage dans la page manuelle git-log[1]. -
--name-status
-
Nâafficher que le ou les noms et statuts de fichier modifiĂ©. Voir la description de lâoption
--diff-filter
pour la signification des lettres de statut. Tout comme--name-only
, les noms de fichiers sont souvent encodés en UTF-8. -
--submodule
[=
<format>] -
Spécifier comment les différences dans les sous-modules sont affichées. Lorsque vous spécifiez
--submodule=short
, le formatshort
(court) est utilisĂ©. Ce format nâaffiche que le nom des commits du dĂ©but et de la fin de la plage. Quand--submodule
ou--submodule=log
est spécifié, le formatlog
(journal) est utilisé. Ce format liste les commits dans la plage comme le faitsummary
de git-submodule[1]. Quand--submodule=diff
est spécifié, le format diff est utilisé. Ce format affiche une diff en ligne des modifications dans le sous-module pour la plage de commits. Vaut par défautdiff.submodule
ou le formatshort
si lâoption de configuration nâest pas renseignĂ©e. -
--color
[=
<quand>] -
Afficher des diff colorés.
--color
(sans=
<quand>) est identique Ă--color=always
. <quand> peut ĂȘtrealways
,never
ouauto
. -
--no-color
-
DĂ©sactiver les diff colorĂ©s. Câest identique Ă
--color=never
. -
--color-moved
[=
<mode>] -
Les lignes de code déplacées sont colorées différemment. Le <mode> vaut par défaut
no
si lâoption nâest pas fournie et zebra si lâoption est fournie sans mode. Le mode est une valeur parmi :-
no
-
Les lignes déplacées ne sont pas surlignées.
-
default
-
Câest un synonyme de
zebra
. Cela peut changer pour un mode plus raisonnable dans le futur. -
plain
-
Toute ligne qui est ajoutée à un endroit et supprimée à un autre endroit sera colorée avec
color.diff.newMoved
. Similairementcolor.diff.oldMoved
sera utilisĂ© pour les lignes retirĂ©es qui ont Ă©tĂ© ajoutĂ©es ailleurs dans le diff. Ce mode prend nâimporte quelle ligne dĂ©placĂ©e, mais il nâest pas trĂšs utile dans une revue pour dĂ©terminer si un bloc de code a Ă©tĂ© dĂ©placĂ© sans permutation. -
blocks
-
Les blocs de texte dĂ©placĂ© dâau moins 20 caractĂšres alphanumĂ©riques sont dĂ©tectĂ©s avidement. Les blocs dĂ©tectĂ©s sont peints avec les couleurs
color.diff.oldMoved
pour lâancienne place etcolor.diff.newMoved
pour la nouvelle place. Les blocs adjacents ne peuvent pas ĂȘtre diffĂ©renciĂ©s. -
zebra
-
Les blocs de texte déplacé sont détectés comme dans le mode
blocks
. Les blocs sont peints en utilisant la couleurcolor.diff.
(old
|new
)Moved
oucolor.diff.
(old
|new
)MovedAlternative
. La diffĂ©rence entre les deux couleurs indique quâun nouveau bloc a Ă©tĂ© dĂ©tectĂ©. -
dimmed-zebra
-
Similaire Ă
zebra
, mais avec une limitation supplémentaire des parties inintéressantes du code déplacé. Les lignes de frontiÚre de deux blocs adjacents sont considérées intéressantes, le reste est inintéressant.dimmed_zebra
est un synonyme déconseillé.
-
-
--no-color-moved
-
DĂ©sactiver la dĂ©tection de dĂ©placement. Ce peut ĂȘtre utilisĂ© pour outrepasser les rĂ©glages de configuration. Câest comme
--color-moved=no
. -
--color-moved-ws=
<mode>,...
-
Ceci configure comment les espaces sont ignorés lors de la détection de déplacement par
--color-moved
. Ces modes peuvent ĂȘtre fournis comme une liste sĂ©parĂ©e par des virgules :-
no
-
Ne pas ignorer les espaces lors de la détection de déplacement.
-
ignore-space-at-eol
-
Ignorer les modifications dâespaces en fin de ligne.
-
ignore-space-change
-
Ignorer les modifications de nombre dâespaces. Cela ignore les espaces en fin de ligne et considĂšre toutes les autres sĂ©quences dâun caractĂšre blanc ou plus comme Ă©quivalentes.
-
ignore-all-space
-
Ignorer les espaces lors de la comparaison de lignes. Ceci ignore les diffĂ©rences mĂȘme si une ligne a des espaces quand lâautre nâen a aucun.
-
allow-indentation-change
-
Ignorer initialement tout espace lors de la dĂ©tection de dĂ©placement, puis grouper les blocs de code dĂ©placĂ© dans un bloc si la modification de blancs est identique par ligne. Câest incompatible avec les autres modes.
-
-
--no-color-moved-ws
-
Ne pas ignorer les blancs lors de la dĂ©tection de dĂ©placement. Ceci peut ĂȘtre utilisĂ© pour outrepasser les rĂ©glages de configuration. Câest identique Ă
--color-moved-ws=no
. -
--word-diff
[=
<mode>] -
Par dĂ©faut, les mots sont dĂ©limitĂ©s par des espacesâŻ; voir
--word-diff-regex
ci-dessous. Le <mode> vaut par défautplain
, et peut valoir :-
color
-
Surligner les mots modifiĂ©s en nâutilisant que des couleurs. Implique
--color
. -
plain
-
Afficher les mots comme [-supprimĂ©-] et {ajoutĂ©}. Ne pas tenter dâĂ©chapper ces dĂ©limiteurs sâils apparaissent dans lâentrĂ©e, donc la sortie peut ĂȘtre ambigĂŒe.
-
porcelain
-
Utiliser un format spécial ligne par ligne destiné à la consommation par script. Les séquences ajoutées/supprimées/non-modifiées sont affichées dans le format diff unifié habituel, commençant par un caractÚre
+
/-
/` ` en dĂ©but de ligne et en Ă©tendant en fin de ligne. Les retours chariot dans lâentrĂ©e sont reprĂ©sentĂ©s par un tilde~
sur une ligne Ă part. -
none
-
Désactiver à nouveau la diff par mots.
Notez quâen dĂ©pit du nom du premier mode, la couleur est utilisĂ©e pour surligner les parties modifiĂ©es dans tous les modes, si activĂ©e.
-
-
--word-diff-regex=
<regex> -
Utiliser <regex> pour dĂ©cider ce quâest un mot, au lieu de dĂ©finir un mot comme une sĂ©quence continue de caractĂšres non blancs. Implique aussi
--word-diff
Ă moins quâelle ait dĂ©jĂ Ă©tĂ© spĂ©cifiĂ©e.Toutes correspondances de <regex> qui ne se chevauchent pas sont considĂ©rĂ©es comme des mots. Tout ce qui se situe entre ces correspondances est considĂ©rĂ© comme de lâespace blanc et ignorĂ© (!) lors du calcul de diffĂ©rences. Vous voudrez peut-ĂȘtre ajouter |[
^
[:space:
]] Ă lâexpression rĂ©guliĂšre pour ĂȘtre sĂ»r quâelle englobe tous les caractĂšres non blancs. Une correspondance qui contient un retour Ă la ligne est tronquĂ©e silencieusement (!) au retour Ă la ligne.Par exemple,
--word-diff-regex=.
va traiter chaque caractĂšre comme un mot et de ce fait prĂ©senter les diffĂ©rences caractĂšre par caractĂšre.La regex peut aussi ĂȘtre indiquĂ©e par un pilote de diff ou une option de configuration, voir gitattributes[5] ou git-config[1]. La ligne de commande a prĂ©cĂ©dence sur le pilote de diff ou la configuration. Le pilote de diff a prĂ©cĂ©dence sur lâoption de configuration.
-
--color-words
[=
<regex>] -
Ăquivalent Ă
--word-diff=color
plus (si une regex a été spécifiée)--word-diff-regex=
<regex>. -
--no-renames
-
DĂ©sactiver la dĂ©tection de renommage, mĂȘme si le fichier de configuration indique de le faire par dĂ©faut.
-
--
[no-
]rename-empty
-
Sâil faut utiliser les blobs vides comme source de renommage.
-
--check
-
Avertir si les modifications introduisent des marqueurs de conflit ou des erreurs dâespaces. Les erreurs dâespaces sont dĂ©finies par lâoption de configuration
core.whitespace
. Par dĂ©faut, les espaces en fin de ligne (incluant les lignes ne contenant que des espaces) et le caractĂšre espace suivi immĂ©diatement par une tabulation lors dâune indentation initiale de ligne sont considĂ©rĂ©s comme des erreurs dâespace. Le code dâerreur de sortie est non nul en cas de problĂšmes trouvĂ©s. Non compatible avec--exit-code
. -
--ws-error-highlight=
<sorte> -
Surligner les erreurs dâespace dans les lignes
context
(contexte),old
(ancien) etnew
(nouveau) du diff. Des valeurs multiples sont séparées par des virgules,none
réinitialise les valeurs précédentes,default
rĂ©initialise la liste Ănew
etall
est un raccourci pourold,new,context
. Quand cette option nâest pas fournie et que la variable de configurationdiff.wsErrorHighlight
nâest pas assignĂ©e, seules les erreurs dâespace dans les lignesnew
sont surlignĂ©es. Les erreurs dâespace sont colorĂ©es aveccolor.diff.whitespace
. -
--full-index
-
Au lieu de montrer quelques-uns des premiers caractĂšres, montrer les noms complets des objets blob des images prĂ© et post sur la ligne dâindex lors de la gĂ©nĂ©ration de la sortie au format patch.
-
--binary
-
En plus de
--full-index
, afficher un diff binaire qui peut ĂȘtre appliquĂ© avecgit-apply
. Implique--patch
. -
--abbrev
[=
<n>] -
Au lieu de montrer le nom de lâobjet avec les 40 caractĂšres hexadĂ©cimaux dans le format de diff brut et les lignes dâentĂȘte de lâarbre de diff, montrer le prĂ©fixe le plus court, dâune longueur dâau moins <n> chiffres hexadĂ©cimaux, qui renvoie Ă lâobjet de maniĂšre unique. Dans le format de sortie de rustine de correctif,
--full-index
a une prioritĂ© plus Ă©levĂ©e, câest-Ă -dire si--full-index
est spécifié, les noms de blob complets seront affichés indépendamment de--abbrev
. Un nombre de chiffres diffĂ©rent de celui par dĂ©faut peut ĂȘtre spĂ©cifiĂ© avec--abbrev=
<n>. -
-B
[<n>][/
<m>] -
--break-rewrites
[=
[<n>][/
<m>]] -
Casser les modifications de réécriture complÚte en paires de suppression et création. Cela sert deux objectifs :
Cela affecte la façon dont un changement qui Ă©quivaut Ă une réécriture totale dâun fichier apparaĂźt non pas comme une sĂ©rie de suppressions et dâinsertions mĂ©langĂ©es avec quelques lignes qui (par hasard) correspondent entre les deux versions comme contexte, mais comme une simple suppression de tout ce qui est ancien suivi dâune simple insertion de tout ce qui est nouveau, et le nombre <m> contrĂŽle cet aspect de lâoption
-B
(par défaut 60 %).-B/70%
spĂ©cifie que moins de 30 % de lâoriginal doit rester dans le rĂ©sultat pour que Git le considĂšre comme une réécriture totale (autrement, la rustine rĂ©sultante sera une sĂ©rie de suppressions et dâinsertions mĂ©langĂ©es avec des lignes de contexte).UtilisĂ© avec
-M
, un fichier complĂštement réécrit est aussi considĂ©rĂ© comme la source dâun renommage (habituellement-M
ne considĂšre que les fichiers qui ont disparu comme source de renommage), et le nombre <n> contrĂŽle le niveau de lâoption-B
(par défaut, 50 %).-B20%
signifie quâune modification avec des additions et des suppressions reprĂ©sentant 20 % ou plus du contenu du fichier est considĂ©rĂ©e pour ĂȘtre utilisĂ©e comme une source possible pour un renommage en un autre fichier. -
-M
[<n>] -
--find-renames
[=
<n>] -
DĂ©tecter les renommages. Si <n> est spĂ©cifiĂ©, câest un seuil dâindex de similaritĂ© (c-Ă -d la quantitĂ© dâaddition/suppression comparĂ© Ă la taille du fichier). Par exemple,
-M90%
signifie que Git considĂ©rera un couple suppression/ajout comme renommage si plus de 90 % du fichier nâa pas changĂ©. Sans le signe%
, le nombre doit ĂȘtre lu comme une fraction prĂ©cĂ©dĂ©e du point dĂ©cimal.-M5
devient 0,5, tout comme-M50%
. De mĂȘme,-M05
est identique Ă-M5%
. Pour limiter la détection à des renommages exacts, utilisez-M100%
. Lâindex de similaritĂ© par dĂ©faut est50%
. -
-C
[<n>] -
--find-copies
[=
<n>] -
Détecter les copies aussi bien que les renommages. Voir aussi
--find-copies-harder
. Si <n> est spĂ©cifiĂ©, il a la mĂȘme signification que pour-M
<n>. -
--find-copies-harder
-
Pour des raisons de performance, par dĂ©faut, lâoption
-C
trouve des copies seulement si le fichier original de la copie a Ă©tĂ© modifiĂ© dans le mĂȘme ensemble de modifications. Ce drapeau fait inspecter Ă la commande les fichiers non modifiĂ©s comme candidats comme source de copie. Câest une opĂ©ration trĂšs chĂšre pour des projets importants, donc Ă utiliser avec prĂ©caution. SpĂ©cifier plusieurs fois lâoption-C
a le mĂȘme effet. -
-D
-
--irreversible-delete
-
Omettre la prĂ©-image pour des suppressions, c-Ă -d nâafficher que lâentĂȘte mais pas la diff entre la prĂ©-image et
/dev/null
. La rustine rĂ©sultante nâest pas destinĂ©e Ă ĂȘtre appliquĂ©e avecpatch
ougit
apply
; Câest seulement pour les personnes qui veulent juste se concentrer sur une revue des modifications. De plus, la sortie manque clairement dâassez dâinformation pour appliquer la rustine en inverse, mĂȘme manuellement, dâoĂč le nom de lâoption.LorsquâutilisĂ© conjointement avec
-B
, omettre aussi la prĂ©-image dans la partie suppression dâune paire suppression/crĂ©ation. -
-l
<num> -
Les options
-M
et-C
impliquent quelques Ă©tapes prĂ©liminaires qui peuvent dĂ©tecter des sous-ensembles de renommages/copies Ă moindre coĂ»t, suivies dâune partie pour le reste qui compare toutes les destinations non appariĂ©es restantes Ă toutes les sources pertinentes. (Pour les renommages, seules les sources non appariĂ©es restantes sont pertinentesâŻ; pour les copies, toutes les sources originales sont pertinentes). Pour N sources et destinations, cette vĂ©rification exhaustive est en O(N^2). Cette option empĂȘche la partie exhaustive de la dĂ©tection des renommages/copies de sâexĂ©cuter si le nombre de fichiers source/destination impliquĂ©s dĂ©passe le nombre spĂ©cifiĂ©. La valeur par dĂ©faut est` diff.renameLimit`. Notez quâune valeur de 0 est traitĂ©e comme illimitĂ©e. -
--diff-filter=
[(A
|C
|D
|M
|R
|T
|U
|X
|B
)...
[*
]] -
Sélectionner seulement les fichiers qui sont Ajoutés (
A
), Copiés (C
), supprimés (DeletedD
), Modifiés (M
), Renommés (R
), ont eu un changement de Type (T
) (c-Ă -d fichier normal, lien symbolique, sous-module âŠ), sont non fusionnĂ©s (UnmergedU
), sont inconnus (UnknownX
) ou ont eu leur appairage cassé (BrokenB
). Toute combinaison de caractĂšres de filtre (incluant aucun) peut ĂȘtre utilisĂ©e. Quand*
(Tout-ou-rien) est ajoutĂ© Ă la combinaison, tous les chemins sont sĂ©lectionnĂ©s sâil y a des fichiers qui correspondent aux autres critĂšres dans la comparaisonâŻ; sâil nây a aucun fichier qui correspond aux autres critĂšres, rien nâest sĂ©lectionnĂ©.Aussi, ces lettres majuscules peuvent ĂȘtre spĂ©cifiĂ©es en minuscules pour exclure. Par exemple,
--diff-filter=ad
exclut les chemins ajoutés et supprimés.Notez que toutes les diffs ne peuvent pas présenter tous les types. Par exemple, les entrées copiées et renommées ne peuvent pas apparaßtre si la détection de ces types est désactivée.
-
-S
<chaĂźne> -
Trouver des diffĂ©rences qui modifient le nombre dâoccurrences de la <chaĂźne> spĂ©cifiĂ©e (par ex. addition/suppression) dans un fichier. DestinĂ© Ă lâusage dans des scripts.
Câest utile lorsquâon cherche un bloc exact de code (comme une struct), et quâon veut connaĂźtre lâhistorique de ce bloc depuis son apparition : utiliser cette fonctionnalitĂ© itĂ©rativement pour fournir le bloc dâune prĂ©-image Ă
-S
et continuer jusquâĂ obtenir la toute premiĂšre version du bloc.Les fichiers binaires sont aussi analysĂ©s.
-
-G
<regex> -
Rechercher des différences dont le texte de rustine contient les lignes ajoutées/supprimées correspondant à <regex>.
Pour illustrer la différence entre
-S
<regex>,--pickaxe-regex
et-G
<regex>, considĂ©rons un commit contenant la diff suivante dans un mĂȘme fichier :+ return frotz(nitfol, two->ptr, 1, 0); ... - hit = frotz(nitfol, mf2.ptr, 1, 0);
Alors que git log -G"frotz\(nitfol" affichera ce commit, git log -S"frotz\(nitfol" --pickaxe-regex ne lâaffichera pas (parce que le nombre dâoccurrences de cette chaĂźne nâa pas changĂ©).
Ă moins que
--text
soit fourni, les rustines de fichiers binaires sans filtre textconv seront ignorĂ©es.Voir lâentrĂ©e pickaxe dans gitdiffcore[7] pour plus dâinformation.
-
--find-object=
<id-objet> -
Rechercher les diffĂ©rences qui modifient le nombre dâoccurrences de lâobjet indiquĂ©. Similaire Ă
-S
, juste que lâargument est diffĂ©rent en ce quâelle ne cherche pas une chaĂźne particuliĂšre mais un identifiant dâobjet particulier.Lâobjet peut ĂȘtre un commit de blob ou de sous-module. Cela implique lâoption
-t
dansgit-log
pour trouver aussi des arbres. -
--pickaxe-all
-
Quand
-S
ou-G
trouvent une modification, afficher toutes les modifications dans lâensemble de modifications, pas seulement les fichiers qui contiennent la modification dans <chaĂźne>. -
--pickaxe-regex
-
Traiter la <chaĂźne> fournie Ă
-S
comme une expression réguliÚre POSIX étendue à faire correspondre. -
-O
<fichier-d-ordre> -
ContrĂŽler lâordre dans lequel les fichiers apparaissent dans la sortie. Ceci passe outre la variable de configuration
diff.orderFile
(voir git-config[1]). Pour annulerdiff.orderFile
, utiliser-O/dev/null
.Lâordre en sortie est dĂ©terminĂ© par lâordre des motifs glob dans <fichier-d-ordre>. Tous les fichiers dont le nom de chemin correspond au premier motif sont affichĂ©s en premier, tous les fichiers dont le nom de chemin correspond au second motif (mais pas au premier) sont affichĂ©s ensuite, et ainsi de suite. Tous les fichiers dont les noms de chemin qui ne correspondent Ă aucun motif sont affichĂ©s en dernier, comme sâil y avait un motif ramasse-tout Ă la fin du fichier. Si de multiples noms de chemin ont le mĂȘme rang (ils correspondent avec le mĂȘme motif mais pas de motifs antĂ©rieurs), leur ordre relatif dâaffichage est lâordre normal.
<fichier-d-ordre> est analysé comme suit :
-
Les lignes blanches sont ignorĂ©es, de sorte quâelles peuvent ĂȘtre utilisĂ©es comme sĂ©parateurs pour la lisibilitĂ©.
-
Les lignes commençant par un diÚse ("
#
") sont ignorĂ©es, elles peuvent donc ĂȘtre utilisĂ©es comme commentaires. Ajoutez une barre oblique inverse ("\") au dĂ©but du motif sâil doit commencer par un diĂšse. -
Toutes les autres lignes contiennent un motif unique.
Les motifs ont la mĂȘme syntaxe et sĂ©mantique que les motifs utilisĂ©s pour
fnmatch
(3) sans le drapeauFNM_PATHNAME
, sauf quâun nom de chemin correspond aussi Ă un motif si la suppression de nâimporte quel nombre de composants finaux du nom de chemin correspond au motif. Par exemple, le motif "foo*bar
" correspond Ă "fooasdfbar
" et "foo/bar/baz/asdf
" mais pas Ă "foobarx
". -
-
--skip-to=
<fichier> -
--rotate-to=
<fichier> -
Supprimer les noms des fichiers avant <fichier> dans la sortie (câest-Ă -dire "skip to"), ou les dĂ©placer Ă la fin de la sortie (câest-Ă -dire "rotate to"). Ces options servent principalement lors de la commande
git
difftool
, et peuvent ne pas ĂȘtre trĂšs utiles ailleurs. -
-R
-
Ăchanger deux entrĂ©es ; câest-Ă -dire afficher les diffĂ©rences depuis lâindex ou avec un fichier sur disque avec le contenu de lâarbre.
-
--relative
[=
<chemin>] -
--no-relative
-
Lorsque lancĂ© depuis un sous-rĂ©pertoire du projet, il peut lui ĂȘtre indiquĂ© dâexclure les modifications hors du rĂ©pertoire et dâafficher les noms de chemins relativement Ă lui avec cette option. Quand vous nâĂȘtes pas dans un sous-rĂ©pertoire (par ex. dans un dĂ©pĂŽt nu), vous pouvez nommer quel sous-rĂ©pertoire par rapport auquel afficher la sortie en fournissant un argument <chemin>. Lâoption
--no-relative
peut ĂȘtre utilisĂ©e pour annuler lâoption de configurationdiff.relative
et lâoption--relative
précédente. -
-a
-
--text
-
Traiter tous les fichiers comme texte.
-
--ignore-cr-at-eol
-
Ignorer les retours chariot en fin de ligne lors de la comparaison.
-
--ignore-space-at-eol
-
Ignorer les modifications dâespaces en fin de ligne.
-
-b
-
--ignore-space-change
-
Ignorer les modifications de nombre dâespaces. Cela ignore les espaces en fin de ligne et considĂšre toutes les autres sĂ©quences dâun caractĂšre blanc ou plus comme Ă©quivalentes.
-
-w
-
--ignore-all-space
-
Ignorer les espaces lors de la comparaison de lignes. Ceci ignore les diffĂ©rences mĂȘme si une ligne a des espaces quand lâautre nâen a aucun.
-
--ignore-blank-lines
-
Ignorer les modifications dont les lignes sont blanches.
-
-I
<regex> -
--ignore-matching-lines=
<regex> -
Ignorer les modifications dont toutes les lignes correspondent Ă <regex>. Cette option peut ĂȘtre spĂ©cifiĂ©e plusieurs fois.
-
--inter-hunk-context=
<lignes> -
Afficher le contexte entre des sections de diff, jusquâau <nombre> spĂ©cifiĂ© de lignes, fusionnant de ce fait les sections qui sont proches. Par dĂ©faut,
diff.interHunkContext
ou 0 si lâoption de configuration nâest pas configurĂ©e. -
-W
-
--function-context
-
Afficher lâensemble de la fonction comme lignes de contexte pour chaque modification. Les noms de fonction sont dĂ©terminĂ©s de la mĂȘme maniĂšre que git diff gĂ©nĂšre sur les en-tĂȘtes de sections de rustines(voir «âŻDĂ©finir un en-tĂȘte personnalisĂ©âŻÂ» dans gitattributes[5]).
-
--exit-code
-
Faire sortir le programme avec un code similaire Ă
diff
(1). Autrement dit, il sort avec 1 sâil y avait des diffĂ©rences et 0 signifie aucune diffĂ©rence. -
--quiet
-
Désactiver tous les résultats du programme. Implies
--exit-code
. DĂ©sactive lâexĂ©cution de lâassistant de diff externe dont le code de sortie nâest pas fiable, câest-Ă -dire que leur option de configuration respectivediff.trustExitCode
ou
diff.
<pilote>.trustExitCode
ou la variable dâenvironnement GIT_EXTERNAL_DIFF_TRUST_EXIT_CODE sont Ăfalse
. -
--ext-diff
-
Permettre lâexĂ©cution dâun assistant externe de diffĂ©rence. Si vous dĂ©finissez un pilote externe de diffĂ©rence avec gitattributes[5], vous avez besoin dâutiliser cette option avec git-log[1] et compagnie.
-
--no-ext-diff
-
Désactiver les pilotes de diff externes.
-
--textconv
-
--no-textconv
-
Permettre (ou dĂ©sactiver) le lancement des filtres externes de conversion en texte lors de la comparaison de fichiers binaires. Voir gitattributes[5] pour plus de dĂ©tails. Comme les filtres textconv sont typiquement des conversions Ă sens unique, la diff rĂ©sultante est adaptĂ©e Ă la consommation humaine, mais ne peut pas ĂȘtre appliquĂ©e. Pour cette raison, les filtres textconv sont activĂ©s par dĂ©faut seulement pour git-diff[1] et git-log[1], mais pas pour git-format-patch[1] ou les commandes de plomberie de diff.
-
--ignore-submodules
[=
(none
|untracked
|dirty
|all
)] -
Ignorer les modifications dans des sous-modules lors de la génération du diff.
all
(tout) est la valeur par dĂ©faut. Lâutilisation denone
va considérer les sous-modules comme modifiés quand ils contiennent soit des fichiers non-suivis ou modifiés, ou si leurHEAD
diffĂšre du commit enregistrĂ© dans le super-projet, et peut ĂȘtre utilisĂ© pour passer outre tout rĂ©glage de lâoptionignore
dans git-config[1] ou gitmodules[5]. Quanduntracked
est utilisĂ©, les sous-modules ne sont pas considĂ©rĂ©s sales quand ils ne contiennent que du contenu non suivi (mais ils sont quand mĂȘme scannĂ©s pour trouver du contenu modifiĂ©). Lâutilisation dedirty
ignore toutes les modifications Ă lâarbre de travail des sous-modulesâŻ; seules les modifications aux commits stockĂ©s dans le super-projet sont affichĂ©es (câĂ©tait le comportement jusquâĂ v1.7.0). La valeurall
cache toutes les modifications des sous-modules. -
--src-prefix=
<préfixe> -
Afficher le <préfixe> de source fourni au lieu de
a/
. -
--dst-prefix=
<préfixe> -
Afficher le <préfixe> de destination fourni au lieu de
b/
. -
--no-prefix
-
Nâafficher aucun prĂ©fixe ni de source, ni de destination.
-
--default-prefix
-
Utiliser les préfixes source et destination par défaut (
a/
etb/
). Cela surcharge les variables de configuration telles que configuration telle quediff.noprefix
,diff.srcPrefix
,diff.dstPrefix
, etdiff.mnemonicPrefix
(voir git-config[1]). -
--line-prefix=
<préfixe> -
Ajouter le <préfixe> additionnel à chaque ligne de la sortie.
-
--ita-invisible-in-index
-
Par défaut, une entrée ajoutée par
git
add
-N
apparaĂźt comme un fichier vide existant dansgit
diff
et un nouveau fichier dansgit
diff
--cached
. Cette option fait apparaĂźtre lâentrĂ©e comme un fichier nouveau dansgit
diff
et non existant dansgit
diff
--cached
. Cette option peut ĂȘtre inversĂ©e avec--ita-visible-in-index
. Les deux options sont expĂ©rimentales et peuvent ĂȘtre retirĂ©es dans le futur.
Pour une explication plus détaillée sur ces options communes, voir aussi gitdiffcore[7].
- <arbre-esque>
-
Lâidentifiant dâun objet arbre.
- <chemin>âŠâ
-
Si elle est fournie, les rĂ©sultats sont limitĂ©s Ă un sous-ensemble de fichiers correspondant Ă lâune des spĂ©cifications de chemin fournies.
- -r
-
Parcourir récursivement les sous-arbres.
- -t
-
Afficher lâentrĂ©e de lâarbre elle-mĂȘme ainsi que les sous-arbres. Implique -r.
- --root
-
Quand
--root
est spĂ©cifiĂ©, le commit initial sera montrĂ© comme un gros Ă©vĂ©nement de crĂ©ation. Ceci est Ă©quivalent Ă une comparaison avec lâarbre NULL. - --merge-base
-
Au lieu de comparer directement les <arbre-esque>s, utiliser la base de fusion entre les deux <arbre-esque>s comme le cĂŽtĂ© "avant". Il doit y avoir deux <arbre-esque>s donnĂ©s et ils doivent tous deux ĂȘtre des commits.
- --stdin
-
Lorsque
--stdin
est spĂ©cifiĂ©, la commande ne prend pas dâarguments <arbre-esque> sur la ligne de commande. Au lieu de cela, elle lit les lignes contenant soit deux <arbre>, un <commit>, ou une liste de <commit> depuis son entrĂ©e standard. (Utilisez un espace simple comme sĂ©parateur).Lorsque deux arbres sont donnĂ©s, comparer le premier arbre avec le second. Lorsquâun seul commit est donnĂ©, il compare le commit avec ses parents. Les autres commits, lorsquâils sont donnĂ©s, sont utilisĂ©s comme sâils Ă©taient les parents du premier commit.
Lors de la comparaison de deux arbres, lâID des deux arbres (sĂ©parĂ©s par un espace et terminĂ©s par une nouvelle ligne) est affichĂ© avant la diffĂ©rence. Lors de la comparaison de commits, lâID du premier (ou du seul) commit, suivi dâune nouvelle ligne, est affichĂ©.
Les drapeaux suivants affectent davantage le comportement lors de la comparaison des commits (mais pas des arbres).
- -m
-
Par défaut, git diff-tree --stdin ne montre pas les différences pour les commits de fusion. Avec ce drapeau, il montre les différences de ce commit depuis tous ses parents. Voir aussi
-c
. - -s
-
Par défaut, git diff-tree --stdin affiche les différences, soit sous forme lisible par la machine (sans
-p
), soit sous forme de rustine (avec-p
). Cette sortie peut ĂȘtre supprimĂ©e. Elle nâest utile quâavec lâoption-v
. - -v
-
Ce drapeau fait en sorte que git diff-tree --stdin affiche également le message de validation avant les différences.
- --pretty[=<format>]
- --format=<format>
-
Formater le contenu des journaux de commits dans un format donnĂ©, oĂč <format> peut ĂȘtre au choix parmi oneline, short, medium, full, fuller, reference, email, raw, format:<chaĂźne> et tformat:<chaĂźne>. Lorsque <format> nâest rien de ce qui prĂ©cĂšde, et quâil contient'%format', il agit comme si --pretty=tformat:<format> Ă©tait donnĂ©.
Voir la section "MISE EN FORME" pour plus de dĂ©tails pour chaque format. Lorsque la partie'=<format>' est omise, la valeur par dĂ©faut estâmedium'.
Note : vous pouvez spécifier le format par défaut dans la configuration du dépÎt
commit.cleanup
(voir git-config[1]). - --abbrev-commit
-
Au lieu dâafficher le nom complet hexadĂ©cimal de 40 octets de lâobjet commit, afficher un prĂ©fixe qui nomme lâobjet de maniĂšre unique. Lâoption "--abbrev=<n>" (qui modifie Ă©galement la sortie diff, si elle est affichĂ©e) peut ĂȘtre utilisĂ©e pour spĂ©cifier la longueur minimale du prĂ©fixe.
Cela devrait rendre "--pretty=oneline" beaucoup plus lisible pour les personnes utilisant des terminaux Ă 80 colonnes.
- --no-abbrev-commit
-
Afficher le nom complet hexadĂ©cimal de 40 octets de lâobjet commit. Ceci annule
--abbrev-commit
, quâelle soit explicitement ou implicitement impliquĂ©e par dâautres options telles que "--oneline". Elle remplace Ă©galement la variablelog.abbrevCommit
. - --oneline
-
Câest un raccourci pour "--pretty=oneline --abbrev-commit" utilisĂ©s ensemble.
- --encoding=<codage>
-
Les objets commit enregistrent lâencodage utilisĂ© pour le message de log dans leur en-tĂȘte dâencodageâŻ; cette option peut ĂȘtre utilisĂ©e pour indiquer Ă la commande de recoder le message de log du commit dans lâencodage prĂ©fĂ©rĂ© par lâutilisateur. Pour les commandes hors plomberie, cette valeur par dĂ©faut est UTF-8. Notez que si un objet prĂ©tend ĂȘtre encodĂ© en
X
et que nous sortons enX
, nous allons sortir lâobjet Ă lâidentiqueâŻ; cela signifie que les sĂ©quences invalides dans la livraison originale peuvent ĂȘtre copiĂ©es dans la sortie. De mĂȘme, si iconv(3) ne parvient pas Ă convertir le commit, nous produirons tranquillement lâobjet original tel quel. - --expand-tabs=<n>
- --expand-tabs
- --no-expand-tabs
-
Effectuer une extension de tabulation (remplacer chaque tabulation par suffisamment dâespaces pour remplir jusquâĂ la colonne dâaffichage suivante qui est un multiple de'<n>') dans le message de journal avant de lâafficher dans la sortie.
--expand-tabs
est un raccourci pour--expand-tabs=8
, et--no-expand-tabs
est un raccourci pour--expand-tabs=0
, qui dĂ©sactive lâextension des tabulations.Par dĂ©faut, les tabulations sont dĂ©veloppĂ©es par les formatages qui indentent le message de log par 4 espaces (câest-Ă -dire medium, qui est le format par dĂ©faut, full, fuller).
- --notes[=<ref>]
-
Afficher les notes (voir git-notes[1]) qui annotent le commit, lors de lâaffichage du message du journal de commit. Câest la valeur par dĂ©faut pour les commandes
git
log
,git
show
etgit
whatchanged
lorsquâil nây a pas dâoption--pretty
,--format
ou--oneline
sur la ligne de commande.Par défaut, les notes affichées proviennent des références de notes listées dans les variables
core.notesRef
etnotes.displayRef
(ou les substitutions dâenvironnement correspondantes). Voir git-config[1] pour plus de dĂ©tails.Avec un argument optionnel'<ref>', utiliser la rĂ©fĂ©rence pour trouver les notes Ă afficher. La rĂ©fĂ©rence peut spĂ©cifier le nom complet de rĂ©fĂ©rence quand elle commence par
refs/notes/
âŻ; quand elle commence parnotes/
,refs/
et sinonrefs/notes/
est prĂ©fixĂ© pour former le nom complet de la rĂ©fĂ©rence.Plusieurs options --notes peuvent ĂȘtre combinĂ©es pour contrĂŽler quelles notes sont affichĂ©es. Exemples : "--notes=foo" affichera uniquement les notes de "refs/notes/foo" ; "--notes=foo --notes" affichera les notes de "refs/notes/foo" et des ref(s) de notes par dĂ©faut.
- --no-notes
-
Ne pas afficher les notes. Ceci annule lâoption
--notes
ci-dessus, en rĂ©initialisant la liste des rĂ©fĂ©rences de notes Ă partir desquelles les notes sont affichĂ©es. Les options sont analysĂ©es dans lâordre donnĂ© sur la ligne de commande, par exemple "--notes --notes=foo --no-notes --notes=bar" nâaffichera que les notes "refs/notes/bar". - --show-notes-by-default
-
Afficher les notes par défaut à moins que des options pour afficher des notes spécifiques ne soient fournies.
- --show-notes[=<reférence>]
- --[no-]standard-notes
-
Ces options sont obsolĂštes. Utilisez plutĂŽt les options --notes/--no-notes ci-dessus.
- --show-signature
-
VĂ©rifier la validitĂ© dâun objet commit signĂ© en passant la signature Ă
gpg
--verify
et afficher le résultat.
- --no-commit-id
-
git diff-tree produit une ligne avec lâID de commit lorsque cela est applicable. Ce drapeau supprime la sortie de lâID de commit.
- -c
-
Ce drapeau change la façon dont un commit de fusion est affichĂ© (ce qui signifie quâil nâest utile que lorsque la commande est donnĂ©e une <arbre-esque>, ou
--stdin
). Il montre les diffĂ©rences entre chacun des parents et le rĂ©sultat de la fusion simultanĂ©ment au lieu de montrer les diffĂ©rences par paire entre un parent et le rĂ©sultat un par un (ce que fait lâoption-m
). De plus, elle ne liste que les fichiers qui ont été modifiés depuis tous les parents. - --cc
-
Ce drapeau change la façon dont une rustine de commit de fusion est affichĂ©e, dâune maniĂšre similaire Ă lâoption
-c
. Il implique les options-c
et-p
et compresse davantage la sortie de la rustine en omettant les sections inintĂ©ressantes dont le contenu dans les parents nâa que deux variantes et le rĂ©sultat de la fusion choisit lâune dâentre elles sans modification. Lorsque toutes les sections sont inintĂ©ressantes, le commit lui-mĂȘme et le message du journal de validation ne sont pas affichĂ©s, comme dans tout autre cas de "diff vide". - --combined-all-paths
-
Cet indicateur fait en sorte que les diffs combinĂ©s (utilisĂ©s pour les commits de fusion) listent le nom du fichier de tous les parents. Il nâa donc dâeffet que lorsque -c ou --cc sont spĂ©cifiĂ©s, et nâest probablement utile que si des changements de nom de fichier sont dĂ©tectĂ©s (c.-Ă -d. lorsque la dĂ©tection de renommage ou de copie a Ă©tĂ© demandĂ©e).
- --always
-
Afficher le commit lui-mĂȘme et le message du journal de commit mĂȘme si le diff lui-mĂȘme est vide.
FORMATS AUTOMATIQUES
Si le commit est une fusion, et si la mise en forme nâest pas oneline, email ou raw, une ligne supplĂ©mentaire est insĂ©rĂ©e avant la ligne Author:. Cette ligne commence par "Merge:" et les empreintes des commits ancĂȘtres sont affichĂ©es, sĂ©parĂ©es par des espaces. Notez que les commits Ă©numĂ©rĂ©s ne sont pas nĂ©cessairement la liste des commits parents directs si vous avez limitĂ© votre vue de lâhistoriqueâŻ: par exemple, si vous nâĂȘtes intĂ©ressĂ© que par les modifications liĂ©es Ă un certain rĂ©pertoire ou fichier.
Il existe plusieurs formats intĂ©grĂ©s, et vous pouvez dĂ©finir des formats supplĂ©mentaires en dĂ©finissant une option pretty.<nom> config Ă soit un nouveau nom de format, soit une chaĂźneâformat:', comme dĂ©crit ci-dessous (voir git-config[1]). Voici le dĂ©tail des formats intĂ©grĂ©s :
-
oneline
<empreinte> <ligne-de-titre>
Câest conçu pour ĂȘtre aussi compact que possible.
-
short
commit <empreinte> Author: <auteur>
<ligne-de-titre>
-
medium
commit <empreinte> Author: <auteur> Date: <date d'auteur>
<ligne-de-titre>
<message-de-validation-complet>
-
full
commit <empreinte> Author: <auteur> Commit: <validateur>
<ligne-de-titre>
<message-de-validation-complet>
-
fuller
commit <empreinte> Author: <auteur> AuthorDate: <date d'auteur> Commit: <validateur> CommitDate: <date de validation>
<ligne-de-titre>
<message-de-validation-complet>
-
reference
<empreinte-abrégée> (<ligne-de-titre>, <date-d'auteur-courte>)
Ce format est utilisĂ© pour faire rĂ©fĂ©rence Ă un autre commit dans un message de validation et est le mĂȘme que
--pretty='format:%C
(auto
)%h
(%s,
%ad
). Par défaut, la date est formatée avec--date=short
Ă moins quâune autre option--date
ne soit explicitement spécifiée. Comme pour toutformat:
avec des espaces rĂ©servĂ©s de format, sa sortie nâest pas affectĂ©e par dâautres options comme--decorate
et--walk-reflogs
. -
email
From <empreinte> <date> From: <auteur> Date: <date d'auteur> Subject: [PATCH] <ligne de titre>
<message-de-validation-complet>
-
mboxrd
Comme email, mais les lignes dans le message de validation commençant par "From" (prĂ©cĂ©dĂ© de zĂ©ro ou plus ">") sont citĂ©es avec ">" pour ne pas ĂȘtre confondues avec le dĂ©but dâun nouveau commit.
-
raw
Le formatâraw' montre le commit entier telle quâelle est stockĂ©e dans lâobjet commit. Notamment, les empreintes sont affichĂ©es dans leur intĂ©gralitĂ©, que --abbrev ou --no-abbrev soient utilisĂ©s ou non, et lâinformation parents indiquent le vĂ©ritable commit parent, sans tenir compte des greffes ou de la simplification dâhistorique. Notez que ce format affecte la façon dont les commits sont affichĂ©s, mais pas la façon dont la diffĂ©rence est affichĂ©e, par exemple avec
git
log
--raw
. Pour obtenir les noms complets des objets dans un format de diff brut, utilisez--no-abbrev
. -
format:<chaĂźne-de-formatage>
Le format format:<chaĂźne-de-formatage> vous permet de spĂ©cifier quelles informations vous voulez afficher. Cela fonctionne un peu comme le format printf, Ă lâexception notable que vous obtenez une nouvelle ligne avec'%n' au lieu de'\n'.
Par exemple,format : "Lâauteur de %h Ă©tait %an, %ar%nLâentĂȘte Ă©tait >>%s<<<%n" afficherait quelque chose comme ceci :
L'auteur de fe6e0ee Ă©tait Junio C Hamano, 23 hours ago L'entĂȘte Ă©tait >>t4119: test autocomputing -p<n> for traditional diff input.<<
Les espaces réservés sont :
-
Les places qui sâĂ©tendent Ă un seul caractĂšre littĂ©ral :
-
Espaces rĂ©servĂ©s qui affectent le formatage des espaces rĂ©servĂ©s ultĂ©rieursâŻ:
- %Cred
-
passe la couleur au rouge
- %Cgreen
-
passe la couleur au vert
- %Cblue
-
passe la couleur au bleu
- %Creset
-
réinitialise la couleur
- %C(âŠâ)
-
spĂ©cification de couleur, telle que dĂ©crite sous Valeurs dans la section "FICHIER DE CONFIGURATION" de git-config[1]. Par dĂ©faut, les couleurs ne sont affichĂ©es que lorsquâelles sont activĂ©es pour la sortie des journaux (par
color.diff
,color.ui
, ou--color
, et en respectant les paramĂštresauto
du premier si nous allons sur un terminal).%C
(auto,...
) est accepté comme synonyme historique de la valeur par défaut (par exemple,%C
(auto,red
)). Spécifier%C
(always,...
) affichera les couleurs mĂȘme si la couleur nâest pas activĂ©e autrement (bien quâil faille toujours utiliser--color=always
pour activer la couleur pour toute la sortie, y compris ce format et tout ce que git peut colorier).auto
seul (câest-Ă -dire%C
(auto
)) activera la coloration automatique sur les places suivantes jusquâĂ ce que la couleur soit Ă nouveau changĂ©e. - %m
-
marque Ă gauche (<), Ă droite (>) ou de limite (
-
) - %w([<w>[,<i1>[,<i2>]]])
-
basculer de rebouclage de ligne, comme lâoption -w de git-shortlog[1].
- %<( <N> [,trunc|ltrunc|mtrunc])
-
faire en sorte que lâespace rĂ©servĂ© suivant prenne au moins N largeurs de colonne, en remplissant les espaces Ă droite si nĂ©cessaire. Tronquer Ă©ventuellement (avec points de suspension ..) Ă gauche (ltrunc) .. che, le milieu (mtrunc) mi.. eu, ou la droite (trunc) 'dr.. ', si la sortie est plus longue que N colonnes. Note 1âŻ: cette troncation ne fonctionne correctement quâavec N >= 2. Note 2âŻ: les espaces autour des valeurs N et M (voir ci-dessous) sont facultatifs. Remarque 3âŻ: Les emojis et autres caractĂšres larges prendront deux colonnes dâaffichage, ce qui peut dĂ©passer les limites des colonnes. Note 4âŻ: les marques de combinaison de caractĂšres dĂ©composĂ©s peuvent ĂȘtre mal placĂ©es au niveau des limites de rembourrage.
- %<|( <M> )
-
faire en sorte que lâespace rĂ©servĂ© suivant prenne au moins jusquâĂ la MiĂšme colonne dâaffichage, en remplissant les espaces sur la droite si nĂ©cessaire. Utilisez des valeurs M nĂ©gatives pour les positions de colonne mesurĂ©es Ă partir du bord droit de la fenĂȘtre du terminal.
- %>( <N> ), %>|( <M> )
-
similaire Ă %<( <N> ), %<|( <M> ) respectivement, mais les espaces dâalignement Ă gauche
- %>>( <N> ), %>>|( <M> )
-
similaire Ă %>( <N> ), %>|( <M> ) respectivement, sauf que si le prochain espace rĂ©servĂ© prend plus dâespaces que prĂ©vu et quâil y a des espaces Ă sa gauche, utiliser ces espaces
- %><( <N> ), %><|( <M> )
-
similaire Ă %<( <N> ), %<|( <M> ) respectivement, mais en dĂ©calant des deux cĂŽtĂ©s (câest-Ă -dire que le texte est centrĂ©)
-
Espaces réservés développant les informations extraites du commit :
- %H
-
empreinte du commit
- %h
-
empreinte abrégée du commit
- %T
-
empreinte de lâarbre
- %t
-
empreinte abrĂ©gĂ©e de lâarbre
- %P
-
empreintes des parents
- %p
-
empreintes abrégés des parents
- %an
-
nom de lâauteur
- %aN
-
nom de lâauteur (en respectant .mailmap, voir git-shortlog[1] ou git-blame[1])
- %ae
-
e-mail de lâauteur
- %aE
-
e-mail de lâauteur (en respectant .mailmap, voir git-shortlog[1] ou git-blame[1])
- %al
-
partie locale de lâe-mail de lâauteur (la partie avant le signe "@")
- %aL
-
partie locale de lâauteur (voir %al) en respectant .mailmap, voir git-shortlog[1] ou git-blame[1])
- %ad
-
date de lâauteur (le format respecte lâoption --date=)
- %aD
-
date dâauteur, style RFC2822
- %ar
-
date de lâauteur, date relative
- %at
-
date de lâauteur, horodatage UNIX
- %ai
-
date de création, format de type ISO 8601
- %aI
-
date dâauteur, format strict ISO 8601
- %as
-
date dâauteur, format court (
AAAA-MM-JJ
) - %ah
-
date de lâauteur, style humain (comme lâoption
--date=human
de git-rev-list[1]) - %cn
-
nom du validateur
- %cN
-
nom du validateur (en respectant .mailmap, voir git-shortlog[1] ou git-blame[1])
- %ce
-
e-mail du validateur
- %cE
-
e-mail du validateur (en respectant .mailmap, voir git-shortlog[1] ou git-blame[1])
- %cl
-
partie locale de lâe-mail du validateur (la partie avant le signe "@")
- %cL
-
partie locale du validateur (voir %cl) en respectant .mailmap, voir git-shortlog[1] ou git-blame[1])
- %cd
-
date de validation (le format respecte lâoption --date=)
- %cD
-
date de validation, style RFC2822
- %cr
-
date de validation, date relative
- %ct
-
date de validation, horodatage UNIX
- %ci
-
date de validation, format de type ISO 8601
- %cI
-
date de validation, format ISO 8601 strict
- %cs
-
date de validation, format court (
AAAA-MM-JJ
) - %ch
-
date du validateur, style humain (comme lâoption
--date=human
de git-rev-list[1]) - %d
-
les noms de ref, comme lâoption --decorate de git-log[1].
- %D
-
les noms des refs, sans encadrement par « ( » et « ) ».
- %(decorate[:<options>])
-
noms de rĂ©fs avec des dĂ©corations personnalisĂ©es. La chaĂźne "decorate" peut ĂȘtre suivie de deux points et de zĂ©ro ou plus options sĂ©parĂ©es par des virgules. Les valeurs dâoption peuvent contenir des codes de formatage litĂ©raux. Ils doivent ĂȘtre utilisĂ©s pour les virgules (
%x2C
) et les parenthĂšses de fermeture (%x29
), en raison de leur rĂŽle dans la syntaxe optionnelle.-
prefix=<valeur>âŻ: AffichĂ© avant la liste des noms de rĂ©f. Valeur pas dĂ©faut " (".
-
suffix= <valeur>âŻ: affichĂ© aprĂšs la liste des noms rĂ©f. Valeur par dĂ©faut Ă ")".
-
separator=<valeur>âŻ: affichĂ© entre les noms de rĂ©f. Valeur par dĂ©faut Ă "
,
". -
pointer=<valeur>âŻ: Affichage entre HEAD et la branche pointĂ©e, le cas Ă©chĂ©ant. Par dĂ©faut " -> ".
-
tag= <valeur> : Afficher avant les noms des étiquettes. par défaut "
tag:
".
-
Par exemple, pour produire des décorations sans enveloppe ni étiquettes, et des espaces comme séparateurs :
+
%
(decorate:prefix=,suffix=,tag=,separator=
)- %(describe[:<options>])
-
nom lisible par lâhomme, comme git-describe[1]âŻ; chaĂźne vide pour les commits non descriptibles. La chaĂźne
describe
peut ĂȘtre suivie de deux points et de zĂ©ro ou plusieurs options sĂ©parĂ©es par des virgules. Les descriptions peuvent ĂȘtre incohĂ©rentes lorsque des Ă©tiquettes sont ajoutĂ©es ou supprimĂ©es en mĂȘme temps.-
tags[=<valeur-boolĂ©enne>]âŻ: Au lieu de ne considĂ©rer que les Ă©tiquettes annotĂ©es, prendre Ă©galement en compte les Ă©tiquettes lĂ©gĂšres.
-
abbrev=<nombre> : Au lieu dâutiliser le nombre de chiffres hexadĂ©cimaux par dĂ©faut (qui varie en fonction du nombre dâobjets dans le dĂ©pĂŽt avec une valeur par dĂ©faut de 7) du nom dâobjet abrĂ©gĂ©, utiliser <nombre> chiffres, ou autant de chiffres que nĂ©cessaire pour former un nom unique.
-
match=<motif> : Ne considÚre que les étiquettes correspondant au motif
glob
(7
) donnĂ©, Ă lâexclusion du prĂ©fixe "refs/tags/". -
exclude=<motif>' : Ne pas prendre en compte les étiquettes correspondant au motif
glob
(7
) donné, en excluant le préfixe "refs/tags/".
-
- %S
-
nom de ref fourni en ligne de commande par lequel le commit a été atteint (comme
git
log
--source
), ne fonctionne quâavecgit
log
- %e
-
encodage
- %s
-
titre
- %f
-
ligne de titre aseptisée, convenant pour un nom de fichier
- %b
-
corps
- %B
-
corps brut (sujet et corps non enveloppés)
- %N
-
notes du commit
- %GG
-
message de vérification brut de GPG pour un commit signé
- %G?
-
afficher "G" pour une bonne signature (valide), "B" pour une mauvaise signature, "U" pour une bonne signature avec une validitĂ© inconnue, "X" pour une bonne signature qui a expirĂ©, "Y" pour une bonne signature faite par une clĂ© expirĂ©e, "R" pour une bonne signature faite par une clĂ© rĂ©voquĂ©e, "E" si la signature ne peut pas ĂȘtre vĂ©rifiĂ©e (par exemple la clĂ© est manquante) et "N" pour aucune signature
- %GS
-
affiche le nom du signataire dâun commit signĂ©
- %GK
-
afficher la clé utilisée pour signer un commit signé
- %GF
-
afficher lâempreinte digitale de la clĂ© utilisĂ©e pour signer un commit signĂ©
- %GP
-
afficher lâempreinte digitale de la clĂ© primaire dont la sous-clĂ© a Ă©tĂ© utilisĂ©e pour signer un commit signĂ©
- %GT
-
afficher le niveau de rouille de la clé utilisée pour signer un commit signé
- %gD
-
sélecteur de reflog, p. ex.,
refs/stash@{1}
ourefs/stash@{2
minutes
ago}
; le format suit les rĂšgles dĂ©crites pour lâoption-g
. La partie avant@
est le nom de la rĂ©fĂ©rence tel quâil est donnĂ© sur la ligne de commande (doncgit
log
-g
refs/heads/master
produiraitrefs/heads/master@{0}
). - %gd
-
sĂ©lecteur de reflog raccourci ; identique Ă
%gD
, mais la partie refname est raccourcie pour la lisibilité humaine (ainsirefs/heads/master
devient simplementmaster
). - %gn
-
nom de lâidentitĂ© reflog
- %gN
-
nom de lâidentitĂ© reflog (en respectant .mailmap, voir git-shortlog[1] ou git-blame[1])
- %ge
-
adresse de courriel dâidentitĂ© reflog
- %gE
-
e-mail de lâidentitĂ© reflog (en respectant .mailmap, voir git-shortlog[1] ou git-blame[1])
- %gs
-
titre du reflog
- %(trailers[:<options>])
-
afficher les lignes ajoutées du corps comme interprétées par git-interpret-trailers[1]. La chaßne
trailers
peut ĂȘtre suivie de deux-points et de zĂ©ro ou plus dâoptions sĂ©parĂ©es par des virgules. Si une option est fournie plusieurs fois, la derniĂšre option lâemporte.-
key=<clĂ©>'âŻ: affiche uniquement les chaĂźnes dâattributs avec la <clĂ©> spĂ©cifiĂ©e. Lâappariement se fait de façon insensible Ă la casse et la virgule finale est facultative. Si lâoption est donnĂ©e plusieurs fois, les lignes dâattributs correspondant Ă lâune des clĂ©s sont affichĂ©es. Cette option active automatiquement lâoption
only
de sorte que les lignes non-attribut dans le bloc dâattributs soient masquĂ©es. Si ce nâest pas dĂ©sirĂ©, ce peut ĂȘtre dĂ©sactivĂ© aveconly=false
. Par exemple,%
(trailers:key=Reviewed-by
) affiche les lignes dâattribut avec la clĂ©Reviewed-by
. -
only [=<BOOLĂEN>]' : choisir si les lignes non annotĂ©es du bloc de lignes finales doivent ĂȘtre incluses.
-
separator=<sep>âŻ: spĂ©cifie le sĂ©parateur insĂ©rĂ© entre les lignes dâattributs. Par dĂ©faut, un caractĂšre de saut de ligne. La chaĂźne <sep> peut contenir les codes de formatage littĂ©ral dĂ©crits ci-dessus. Pour utiliser la virgule comme sĂ©parateur, il faut utiliser
%x2C
car sinon elle serait analysée comme option suivante. Par exemple,%
(trailers:key=Ticket,separator=%x2C
) affiche toutes les lignes dâattributs dont la clĂ© est « Ticket » sĂ©parĂ©es par une virgule et un espace. -
unfold[=<boolĂ©en>] : se comporter comme si lâoption
--unfold
dâinterprĂ©tation des attributs Ă©tait donnĂ©e. Par exemple,%
(trailers:only,unfold=true
) dĂ©plie et affiche toutes les lignes dâattributs. -
keyonly [=<booléen>] : ne montrer que la partie principale du bloc final.
-
valueonly [=<boolĂ©en>] : nâaffichez que la partie valeur des lignes finales.
-
key_value_separator=<sep>âŻ: spĂ©cifier le sĂ©parateur insĂ©rĂ© entre la clĂ© et la valeur dans chaque ligne terminale. Par dĂ©faut "âŻ:". Sinon elle partage la mĂȘme sĂ©mantique que separator=<sep> ci-dessus.
-
-
Note
|
Certains espaces rĂ©servĂ©s peuvent dĂ©pendre dâautres options donnĂ©es au moteur de traversĂ©e de rĂ©visions. Par exemple, les options de reflog %g* insĂ©reront une chaĂźne vide Ă moins que nous ne traversions des entrĂ©es de reflog (par exemple, par git log -g ). Les caractĂšres de remplissage %d et %D utiliseront le format de dĂ©coration « short » si --decorate nâa pas dĂ©jĂ Ă©tĂ© fourni sur la ligne de commande.
|
Les options booléennes acceptent une valeur optionnelle [=
<boolĂ©en>]. Les valeurs acceptĂ©es par lâoption`--type=bool` de git-config[1], comme yes
et`off` sont toutes acceptées. Fournir une option booléenne sans =
<valeur> est équivalent à fournir =
<true>.
Si vous ajoutez un +
(signe plus) aprĂšs'%' dâun espace rĂ©servĂ©, un saut de ligne est insĂ©rĂ© immĂ©diatement avant lâexpansion si et seulement si lâespace rĂ©servĂ© se dĂ©veloppe en une chaĂźne non vide.
Si vous ajoutez un -
(signe moins) aprĂšs'%' dâun caractĂšre de remplissage, tous les sauts de ligne consĂ©cutifs prĂ©cĂ©dant immĂ©diatement lâexpansion sont supprimĂ©s si et seulement si lâespace rĂ©servĂ© se dĂ©veloppe en une chaĂźne vide.
Si vous ajoutez un â`(espace) aprĂšsâ%' dâun espace rĂ©servĂ©, un espace est insĂ©rĂ© immĂ©diatement avant lâexpansion si et seulement si lâespace rĂ©servĂ© se dĂ©veloppe en une chaĂźne non vide.
-
tformat:
Le formatâtformat:' fonctionne exactement commeâformat:', sauf quâil fournit une sĂ©mantique « terminator » au lieu de « separator ». En dâautres termes, chaque commit a le caractĂšre de fin de message (habituellement une nouvelle ligne) ajoutĂ©, plutĂŽt quâun sĂ©parateur placĂ© entre les entrĂ©es. Cela signifie que lâentrĂ©e finale dâun format Ă une ligne se terminera correctement par une nouvelle ligne, tout comme le format "oneline". Par exempleâŻ:
$ git log -2 --pretty=format:%h 4da45bef \ | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/' 4da45be 7134973 -- NO NEWLINE $ git log -2 --pretty=tformat:%h 4da45bef \ | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/' 4da45be 7134973
De plus, toute chaĂźne non reconnue qui contient un
%
est interprétée comme si elle avaittformat:
devant elle. Par exemple, ces deux Ă©lĂ©ments sont Ă©quivalentsâŻ:$ git log -2 --pretty=tformat:%h 4da45bef $ git log -2 --pretty=%h 4da45bef
Format brut de sortie
Les formats bruts de sortie de git-diff-index
, git-diff-tree
, git-diff-files
et git
diff
--raw
sont trĂšs similaires.
Ces commandes comparent toutes deux ensembles de choses ; ce qui est comparé varie :
-
git-diff-index
<arbre-esque> -
compare l'<arbre-esque> et les fichiers du systĂšme de fichiers.
-
git-diff-index
--cached
<arbre-esque> -
compare l'<arbre-esque> et lâindex.
-
git-diff-tree
[-r
] <arbre-esque-1> <arbre-esque-2> [<motif>...] -
Compare les arbres nommés par les deux arguments.
-
git-diff-files
[<motif>...] -
compare lâindex et les fichiers sur le systĂšme de fichier.
La commande git-diff-tree
dĂ©bute sa sortie par lâempreinte de ce qui est comparĂ©. Ensuite, toutes les commandes affichent une ligne par fichier modifiĂ©.
une ligne affichée est formatée de la maniÚre suivante :
édition en place :100644 100644 bcd1234 0123456 M fichier0 copie édition :100644 100644 abcd123 1234567 C68 fichier1 fichier2 édition renommage :100644 100644 abcd123 1234567 R86 fichier1 fichier3 création :000000 100644 0000000 1234567 A fichier4 suppression :100644 000000 1234567 0000000 D fichier5 non fusionnné :000000 000000 0000000 0000000 U fichier6
Câest-Ă -dire, de gauche Ă droite :
-
deux points.
-
le mode pour "src" ; 000000 si câest une crĂ©ation ou non fusionnĂ©.
-
un espace.
-
mode pour "dst" ; 000000 si suppression ou non-fusionné.
-
un espace.
-
sha1 de "src", 0{40} si création ou non fusionné.
-
un espace.
-
sha1 de "dst", 0{40} si suppression, non fusionnĂ© ou "arbre de travail dĂ©synchronisĂ© par rapport Ă lâindex".
-
un espace.
-
status, suivi optionnellement dâun nombre score.
-
une tabulation ou un caractĂšre NUL si lâoption
-z
est utilisée. -
chemin pour "src"
-
une tabulation ou un caractĂšre NUL si lâoption
-z
est utilisĂ©e ; nâexiste que pour C ou R. -
chemin pour "dst" ; nâexiste que pour C ou R.
-
un caractĂšre LF ou NUL si lâoption
-z
est utilisĂ©e, pour terminer lâenregistrement.
Les lettres de statut possibles sont :
-
A
: addition dâun fichier -
C
: copie dâun fichier en un autre -
D
: suppression (deletion) dâun fichier -
M
: modification de contenu ou du mode dâun fichier -
R
: renommage dâun fichier -
T
: modification du type dâun fichier (fichier rĂ©gulier, lien symbolique ou sous-module) -
U
: le fichier est non-fusionné (unmerged) (vous devez finir la fusion avant de le valider) -
X
: type de modification "inconnue" (probablement un bug, veuillez le signaler)
Les lettres de statut C
et R
sont toujours suivies dâun score (indiquant le pourcentage de similaritĂ© entre la source et la cible du dĂ©placement ou de la copie). La lettre de statut M
peut ĂȘtre suivie dâun score (indiquant le pourcentage de dissimilaritĂ©) pour une réécriture de fichier.
Le sha1 de "dst" est tout Ă zĂ©ro si le fichier sur le systĂšme de fichiers est dĂ©synchronisĂ© par rapport Ă lâindex.
Exemple :
:100644 100644 5be4a4a 0000000 M fichier.c
Sans lâoption -z
, les noms de chemin avec des caractÚres « inhabituels » sont cités comme expliqué pour la variable de configuration core.quotePath
(voir git-config[1]). Lors de lâutilisation de -z
le fichier est affiché verbatim et la ligne est terminée par un octet NUL.
format diff pour les fusions
git-diff-tree
, git-diff-files
et git-diff
--raw
peuvent prendre une option -c
ou --cc
pour générer une sortie diff pour les commits de fusion. La sortie diffÚre du format décrit ci-dessus sur les points suivants :
-
il y a un caractĂšre deux points pour chaque parent
-
il y a plus de modes "src" et de sha1 "src"
-
les statut est la concaténation des caractÚres de statut de chaque parent
-
pas de nombre optionnel de "score"
-
chemin(s) dâaccĂšs du fichier sĂ©parĂ©(s) par des tabulations
Pour -c
et --cc
, seule la destination ou le chemin final est affichĂ© mĂȘme si le fichier a Ă©tĂ© renommĂ© dâun cĂŽtĂ© ou de lâautre de lâhistorique. Avec --combined-all-paths
, le nom du chemin dans chaque parent est affiché suivi du nom du chemin dans le commit de fusion.
Exemples pour -c
et --cc
sans --combined-all-paths
âŻ:
::100644 100644 100644 fabadb8 cc95eb0 4866510 MM desc.c ::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM bar.sh ::100644 100644 100644 e07d6c5 9042e82 ee91881 RR phooey.c
Exemples oĂč --combined-all-paths
a été ajouté à -c
ou --cc
âŻ:
::100644 100644 100644 fabadb8 cc95eb0 4866510 MM desc.c desc.c desc.c ::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM foo.sh bar.sh bar.sh ::100644 100644 100644 e07d6c5 9042e82 ee91881 RR fooey.c fuey.c phooey.c
Notez que le diff combiné ne liste que les fichiers qui ont été modifiés depuis tous leurs parents.
Génération du texte de rustine avec -p
ExĂ©cuter git-diff[1], git-log[1], git-show[1], git-diff-index[1], git-diff-tree[1] ou git-diff-files[1] avec lâoption -p
produit le texte de rustine. Vous pouvez personnaliser la crĂ©ation du texte de rustine via les variables dâenvironnement GIT_EXTERNAL_DIFF
et GIT_DIFF_OPTS
(voir git[1]), et lâattribut diff
(voir gitattributes[5]).
Ce que lâoption -p
produit est légÚrement différent du format diff traditionnel :
-
Il est prĂ©cĂ©dĂ© dâun entĂȘte "git diff" qui ressemble Ă ceci :
diff --git a/fichier1 b/fichier2
les noms de fichiers sous
a/
etb/
sont identiques Ă moins quâil y ait eu un renommage ou une copie, mĂȘme pour un crĂ©ation ou une suppression,/dev/null
nâest pas utilisĂ© Ă la place des noms de fichiera/
ou`b/`.Quand un renommage ou un copie est décrit,
fichier1
etfichier2
indiquent les noms du fichier source et du fichier cible, respectivement. -
Suivent un ligne ou plus dâentĂȘte Ă©tendu :
old
mode
<mode>new
mode
<mode>deleted
file
mode
<mode>new
file
mode
<mode>copy
from
<chemin>copy
to
<chemin>rename
from
<chemin>rename
to
<chemin>similarity
index
<nombre>dissimilarity
index
<nombre>index
<empreinte>..
<empreinte> <mode>Les modes de fichier <mode> sont affichés comme des nombres à 6 chiffres en octal incluant le type de fichier et les bits de permission.
Les noms de chemin dans les entĂȘtes Ă©tendus nâincluent pas les prĂ©fixes
a/
etb/
.Lâindex de similaritĂ© et le pourcentage de lignes inchangĂ©es et lâindex de dissimilaritĂ© est le pourcentage de lignes changĂ©es. Il est arrondi Ă lâentier infĂ©rieur, suivi du signe pourcent. Une valeur dâindex de similaritĂ© Ă 100 % correspond donc Ă deux fichiers identiques, tandis quâun index de dissimilaritĂ© de 100 % signifie quâaucune ligne de lâancien fichier ne se retrouve dans le nouveau fichier.
La ligne dâindex inclut les noms des objets blob avant et aprĂšs la modification. Le <mode> est inclus si le mode du fichier nâest pas modifiĂ©âŻ; sinon, des lignes sĂ©parĂ©es indiquent lâancien et le nouveau mode.
-
Les noms de chemin avec des caractÚres « inhabituels » sont cités comme expliqué pour la variable de configuration
core.quotePath
(voir git-config[1]). -
Tous les fichiers
fichier1
de la sortie font référence à des fichiers avant la validation, et tous les fichiersfichier2
font rĂ©fĂ©rence aux fichiers aprĂšs la validation. Il est incorrect dâappliquer chaque modification Ă chaque fichier sĂ©quentiellement. Par exemple, cette rustine Ă©change a et bâŻ:diff --git a/a b/b rename from a rename to b diff --git a/b b/a rename from b rename to a
-
Les en-tĂȘtes de section mentionnent le nom de la fonction Ă laquelle la section sâapplique. Voir "DĂ©finition dâun entĂȘte de section personnalisĂ©" dans gitattributes[5] pour des dĂ©tails sur la façon dâadapter cela Ă des langages spĂ©cifiques.
Format de diff combiné
Toute commande gĂ©nĂ©rant un diff accepte lâoption -c
ou --cc
pour produire un diff combinĂ© lors de lâaffichage dâune fusion. Câest le format par dĂ©faut pour afficher les fusions avec git-diff[1] ou git-show[1]. Notez aussi que vous pouvez ajouter lâoption adaptĂ©e --diff-merges
à toutes ces commandes pour forcer la génération des diffs dans un format spécifique.
Un format de diff combiné ressemble à ceci :
diff --combined describe.c index fabadb8,cc95eb0..4866510 --- a/describe.c +++ b/describe.c @@@ -98,20 -98,12 +98,20 @@@ return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1; } - static void describe(char *arg) -static void describe(struct commit *cmit, int last_one) ++static void describe(char *arg, int last_one) { + unsigned char sha1[20]; + struct commit *cmit; struct commit_list *list; static int initialized = 0; struct commit_name *n; + if (get_sha1(arg, sha1) < 0) + usage(describe_usage); + cmit = lookup_commit_reference(sha1); + if (!cmit) + usage(describe_usage); + if (!initialized) { initialized = 1; for_each_ref(get_name);
-
Il est prĂ©cĂ©dĂ© dâun entĂȘte "git diff", qui ressemble Ă ceci (quand lâoption
-c
est utilisĂ©e)âŻ:diff --combined file
ou Ă ceci (lorsque lâoption
--cc
est utilisée) :diff --cc file
-
Il est suivi par une ligne dâentĂȘte Ă©tendu ou plus (cet exemple montre une fusion avec deux parents) :
index
<empreinte>,
<empreinte>..
<empreinte>mode
<mode>,
<mode>..
<mode>new
file
mode
<mode>deleted
file
mode
<mode>,
<mode>La ligne
mode
<mode>,
<mode>..
<mode> nâapparaĂźt que si au moins un des modes est diffĂ©rent du reste. Les entĂȘtes Ă©tendus avec lâinformation Ă propos des dĂ©placements dĂ©tectĂ©s de contenu (dĂ©tection de renommages et de copies) sont conçus pour fonctionner avec le diff de deux <arbre-esques> et ne sont pas utilisĂ©s dans le format de diff combinĂ©. -
Il est suivi par un entĂȘte de deux lignes fichier-source/fichier-cible :
--- a/fichier +++ b/fichier
Similaire Ă lâentĂȘte Ă deux lignes pour le format diff unifiĂ© traditionnel,
/dev/null
est utilisĂ© pour indiquer un fichier créé ou supprimĂ©.Cependant, si lâoption --combined-all-paths est fournie, au lieu des deux lignes de fichier-source/fichier-cible, vous obtenez un en-tĂȘte de N+1 lignes de fichier-source/fichier-cible, oĂč N est le nombre de parents dans le commit de fusion :
--- a/fichier --- a/fichier --- a/fichier +++ b/fichier
Ce format Ă©tendu peut ĂȘtre utile si la dĂ©tection de renommage ou de copie est active, pour vous permettre de voir le nom original du fichier dans diffĂ©rents parents.
-
Le format dâentĂȘte de section est modifiĂ© pour empĂȘcher lâutilisation accidentelle avec
patch
-p1
. Le format de diff combinĂ© a Ă©tĂ© créé pour les revues des modifications de commits de fusions, et nâĂ©tait pas destinĂ© Ă ĂȘtre appliquĂ©. La modification est similaire Ă la modification dans lâentĂȘte Ă©tendu dâindex :@@@ <intervalle-de-fichier-source> <intervalle-de-fichier-source> <intervalle-de-fichier-cible> @@@
Il y a (nombre de parents + 1) caractĂšres
@
dans lâentĂȘte de section pour le format de diff combinĂ©.
à la différence du format diff unifié traditionnel qui montre deux fichiers A et B avec une seule colonne qui a un préfixe -
(moinsâââapparaĂźt dans A mais supprimĂ© dans B), +
(plusâââmanquant dans A mais ajoutĂ© dans B), ou "
"
(espaceââânon modifiĂ©), ce format compare un fichier ou plus fichier1, fichier2,⊠avec un fichier X, et affiche comment X diffĂšre de chaque fichierN. Une colonne pour chaque fichierN est insĂ©rĂ©e dans la sortie pour montrer comment la ligne de X est diffĂ©rente de la ligne correspondante de celui-ci.
Un caractĂšre -
dans la colonne N signifie que la ligne apparaßt dans fichierN mais pas dans le résultat. Un caractÚre +
dans la colonne N signifie que la ligne apparaĂźt dans le rĂ©sultat, et fichierN ne lâa pas (en dâautres termes, la ligne a Ă©tĂ© ajoutĂ©e du point de vue de ce parent).
Dans lâexemple de sortie ci-dessus, la signature de la fonction a Ă©tĂ© changĂ©e depuis les deux fichiers (dâoĂč les deux suppressions -
depuis fichier1 et fichier2, plus ++
pour signifier quâune ligne qui a Ă©tĂ© ajoutĂ©e nâapparaĂźt ni dans fichier1 ni dans fichier2). De plus, huit autres lignes sont identiques depuis fichier1 mais nâapparaissent pas dans fichier2 (et sont donc prĂ©fixĂ©es par +
).
Quand affiché par git
diff-tree
-c
, les parents du commit de fusion sont comparĂ©s avec le rĂ©sultat de fusion (c-Ă -d fichier1..fichierN sont les parents)âŻ; Quand affichĂ© par git
diff-files
-c
, les deux parents de fusion non rĂ©solue sont comparĂ©s avec le fichier dans lâarbre de travail (c-Ă -d fichier1 est stage 2, « notre version », fichier2 est stage 3, « leur version »).
autres formats de diff
Lâoption --summary
dĂ©crit les fichiers nouvellement additionnĂ©s, supprimĂ©s, renommĂ©s et copiĂ©s. Lâoption --stat
ajoute un graphe diffstat
(1) Ă la sortie. Ces options peuvent ĂȘtre combinĂ©es avec dâautres options, telles que -p
et sont destinées à une consommation humaine.
Lors de lâaffichage dâune modification qui comprend un renommage ou une copie, la sortie de --stat
formate de maniÚre compacte les noms de chemins en combinant les préfixes et suffixes communs des noms de chemins. Par exemple, une modification qui déplace arch/i386/Makefile
vers arch/x86/Makefile
en modifiant 4 lignes seront affichĂ©es comme ceciâŻ:
arch/{i386 => x86}/Makefile | 4 +--
Lâoption --numstat
donne lâinformation diffstat(1) mais est organisĂ©e pour un meilleur traitement automatique. Une entrĂ©e dans --numstat
ressemble Ă ceciâŻ:
1 2 README 3 1 arch/{i386 => x86}/Makefile
Soit, de gauche Ă droite :
-
le nombre de lignes ajoutées ;
-
une tabulation ;
-
le nombre de lignes supprimées ;
-
une tabulation ;
-
nom de chemin (avec potentiellement une information de renommage/copie) ;
-
une retour Ă la ligne.
Quand lâoption de sortie -z
est active, la sortie est formatée comme ceci :
1 2 README NUL 3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL
Soit :
-
le nombre de lignes ajoutées ;
-
une tabulation ;
-
le nombre de lignes supprimées ;
-
une tabulation ;
-
un caractĂšre NUL (nâexiste que si renommĂ©/copiĂ©) ;
-
le nom de chemin dans preimage ;
-
un caractĂšre NUL (nâexiste que si renommĂ©/copiĂ©) ;
-
le nom de chemin dans postimage (nâexiste que si renommĂ©/copiĂ©) ;
-
un caractĂšre NUL.
Le caractĂšre NUL
supplĂ©mentaire avant le chemin de prĂ©image dans le cas de renommage permet aux scripts qui lisent la sortie de dĂ©tecter si lâenregistrement actuellement lu est un enregistrement de chemin unique ou un enregistrement de renommage/copie sans avoir besoin de lire plus loin. AprĂšs lecture des lignes ajoutĂ©es et supprimĂ©es, une lecture jusquâau caractĂšre NUL
fournit le nom de chemin, mais si câest NUL
, lâenregistrement fournit deux chemins.
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 .