Comment colorer la console Git?


371

J'ai récemment vu que la gitconsole dans Windows est colorée, par exemple verte pour les ajouts, rouge pour les suppressions, etc. Comment puis-je colorer ma gitconsole comme ça?

Pour l'installer, j'ai utilisé la commande: $ sudo apt-get install git-core


6
À partir de git1.8.4, vous devriez voir les couleurs par défaut. Voir ma réponse ci-dessous .
VonC

1
@VonC git 1.9.1 sur Ubuntu 14.04, ne s'est pas produit. J'ai dû définir moi-même la configuration à partir de la réponse de JoelPurra.
Izkata

1
@Izkata étrange, je le testerai plus tard, mais qu'en est-il d'un git 2.1+? (comme je l'ai commenté ci-dessous dans stackoverflow.com/questions/10998792/… )
VonC

Réponses:


682

Comme indiqué par @VonC , la valeur par color.uidéfaut est autodepuis Git 1.8.4


De la question Unix et Linux Stackexchange Comment coloriser la sortie de git? et la réponse de @Evgeny :

git config --global color.ui auto

Il color.uis'agit d'une méta-configuration qui inclut toutes les différentes color.*configurations disponibles avec les gitcommandes. Ceci est expliqué en détail dans git help config.

Donc, fondamentalement, c'est plus facile et plus pérenne que de définir les différents color.*paramètres séparément.

Explication détaillée de la git configdocumentation :

color.ui: Cette variable détermine la valeur par défaut des variables telles que color.diffet color.grepqui contrôlent l'utilisation de la couleur par famille de commandes. Sa portée s'élargira à mesure que d'autres commandes apprendront la configuration pour définir une valeur par défaut pour l' --coloroption. Définissez-le sur alwayssi vous souhaitez que toutes les sorties non destinées à la consommation de la machine utilisent la couleur, sur trueou autosi vous souhaitez que cette sortie utilise la couleur lors de l'écriture sur le terminal, ou sur falseou neversi vous préférez que les commandes git n'utilisent pas la couleur sauf si elles sont explicitement activées avec certaines autre configuration ou l' --coloroption.


11
Cela fonctionne aussi sur OSX, pas seulement sur Linux comme la question se posait
StackExchange What The Heck

Il faudra probablement ajouter «vrai» à la fin. git config --global color.ui auto true
Vamshi

6
@Skeptor: non, autoc'est suffisant.
Joel Purra

2
@Phani: oui, c'est persistant.
Joel Purra

5
Il est persistant car il ajoute l' ui = autoentrée à la [color]section du ~/.gitconfigfichier de l'utilisateur .
Andris


30

Ajoutez à votre fichier .gitconfig le code suivant:

  [color]
    ui = auto
  [color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
  [color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
  [color "status"]
    added = yellow
    changed = green
    untracked = cyan

7

Git colore automatiquement la plupart de sa sortie si vous le lui demandez. Vous pouvez être très précis sur ce que vous voulez colorer et comment; mais pour activer toutes les couleurs de terminal par défaut, définissez color.ui sur true:

git config --global color.ui true

6

Dans Ubuntu ou toute autre plate-forme (oui, Windows aussi!); à partir de git1.8.4 , qui a été publié le 2013-08-23 , vous n'aurez rien à faire :

De nombreux didacticiels apprennent aux utilisateurs à définir "color.ui" sur "auto" comme première chose après avoir défini " user.name/email" pour vous présenter à Git. Maintenant, la variable par défaut est " auto".

Vous verrez donc les couleurs par défaut.


2
(enfin, même Windows, selon le terminal: stackoverflow.com/a/12133244/6309 )
VonC

2
En utilisant Ubuntu en 2014, git installé et devait encore fonctionner git config --global color.ui auto. Il en va de même pour mon Mac, le seul qui était par défaut autoGit Bash sur mon PC Windows.
sargas

1
@sargas Bien sûr, vous devez installer à partir d'un PPA : launchpad.net/~git-core/+archive/ppa (pour Ubuntu) ou git-scm.com/download/mac (pour Mac)
VonC

1
Je vois, donc ça dépend de la source. J'apprécie votre temps pour commenter cela.
sargas

6

Dans votre ~/.gitconfigfichier, ajoutez simplement ceci:

[color]
  ui = auto

Il prend en charge toutes vos commandes git.


5

Une autre façon est de modifier le .gitconfig(en créer un s'il n'existe pas), par exemple:

vim ~/.gitconfig

puis ajoutez:

[color]
  diff = auto
  status = auto
  branch = auto

3
comme @ chuntao-lu l'a mentionné [color] ui = autosuffit.
Chacko Mathew

5

GIT utilise une sortie colorée par défaut mais sur certains systèmes comme CentOS, il n'est pas activé. Vous pouvez l'activer comme ceci

git config --global color.ui  true 
git config --global color.ui  false 
git config --global color.ui  auto 

Vous pouvez choisir votre commande requise à partir d'ici.

Ici, --global est facultatif pour appliquer une action à chaque référentiel de votre système. Si vous souhaitez appliquer la coloration pour le référentiel actuel uniquement, vous pouvez faire quelque chose comme ça -

 git config color.ui  true 

1

Avec Git 2.18, vous avez plus de contrôle sur la façon dont vous souhaitez spécifier les couleurs dans la console.
La git configcommande " " utilise des options distinctes, par exemple " --int", " --bool", etc. pour spécifier le type auquel l'appelant veut que la valeur soit interprétée comme .

Une nouvelle --type=<typename>option " " a été introduite, ce qui rendrait plus propre la définition de nouveaux types.

Voir commit fb0dc3b (18 avril 2018) et commit 0a8950b (09 avril 2018) par Taylor Blau ( ttaylorr) .
(Fusionné par Junio ​​C Hamano - gitster- en commit e3e042b , 08 mai 2018)

builtin/config.c: support --type=<type>comme alias préféré pour--<type>

git config a longtemps permis aux appelants de fournir un «spécificateur de type», qui indique git config (1) de s'assurer que les valeurs entrantes peuvent être interprétées comme ce type, et (2) que les valeurs sortantes sont canonisées sous ce type.

Dans une autre série, nous proposons d'étendre cette fonctionnalité avec --type=coloret --defaultde la remplacer --get-color.

Cependant, nous utilisons traditionnellement --colorpour signifier "coloriser cette sortie", au lieu de "cette valeur doit être traitée comme une couleur".

Actuellement, git configne prend pas en charge ce type de colorisation, mais nous devons faire attention à ne pas s'accroupir trop tôt sur cette option, afin qu'elle git configpuisse prendre --coloren charge (au sens traditionnel) à l'avenir, si cela est souhaité.

Dans ce patch, nous soutenons --type=<int|bool|bool-or-int|...>en plus --int, --boolet etc.
Cela permet à la prochaine mise à jour ci - dessus à l' appui d' une valeur de l' interrogation couleur avec un défaut via --type=color --default=..., sans dilapidation--color .

Nous conservons le comportement historique de se plaindre lorsque plusieurs --<type>indicateurs de style hérité sont donnés, ainsi que d'étendre cela aux --type=<type>indicateurs de nouveau style en conflit . --int --type=int(et sa paire commutative) ne se plaint pas, mais --bool --type=int(et sa paire commutative) le fait.

Donc avant --boolet --intmaintenant ( documentation ):

--type <type>

' git config' garantira que toute entrée ou sortie est valide sous la ou les contraintes de type données, et canonisera les valeurs sortantes dans<type> la forme canonique.

Les valides <type>incluent:

  • ' bool': canonise les valeurs comme " true" ou " false".
  • ' int': canoniser les valeurs sous forme de nombres décimaux simples. Un suffixe facultatif de ' k', ' m' ou ' g' provoquera la multiplication de la valeur par 1024, 1048576 ou 1073741824 lors de la saisie.
  • ' bool-or-int': canoniser selon ' bool' ou ' int', comme décrit ci-dessus.
  • ' path': canoniser en ajoutant un début ~à la valeur de $HOMEet ~userau répertoire personnel de l'utilisateur spécifié. Ce spécificateur n'a aucun effet lors de la définition de la valeur (mais vous pouvez l'utiliser à git config section.variable ~/partir de la ligne de commande pour laisser votre shell faire l'expansion.)
  • ' expiry-date': canoniser en convertissant une chaîne de date fixe ou relative en horodatage. Ce spécificateur n'a aucun effet lors de la définition de la valeur.
--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
  Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).

Notez que Git 2.22 (Q2 2019) explique que " git config --type=color ..." est censé remplacer " git config --get-color", mais il y a une légère différence qui n'a pas été documentée, qui est maintenant corrigée.

Voir commit cd8e759 (05 mars 2019) par Jeff King ( peff) .
(Fusionné par Junio ​​C Hamano - gitster- en commit f6c75e3 , 20 mars 2019)

config: la --type=colorsortie du document est une ligne complète

Même si la nouvelle --type=coloroption " " à " git config" est censée être compatible avec l' --get-coloroption " " traditionnelle , contrairement à cette dernière, sa sortie n'est pas une ligne incomplète qui n'a pas le LF à la fin.
Cela le rend cohérent avec la sortie d'autres types comme "git config --type=bool ".

Documentez-le , car il surprend parfois les utilisateurs sans méfiance.

Cela se lit maintenant:

--type=color [--default=<default>]est préférable à --get-color (mais notez que --get-colorcela supprimera la nouvelle ligne de fin imprimée par --type=color).


Vous pouvez voir git config --type=boolutilisé avec Git 2.26 (Q1 2020) pour remplacer les git config --boolappels " " dans des exemples de modèles.

Voir commit 81e3db4 (19 janvier 2020) par Lucius Hu ( lebensterben) .
(Fusionné par Junio ​​C Hamano - gitster- en commit 7050624 , 30 janv.2020 )

templates: correction de l'option de type obsolète --bool

Signé par: Lucius Hu

L' --booloption à git-configest marquée comme historique et il est recommandé aux utilisateurs de l'utiliser à la --type=boolplace.
Cette validation remplace toutes les occurrences de --booldans les modèles.

A noter également que, pas d' autres options de type désapprouvée se trouvent, y compris --int, --bool-or-int, --pathou --expiry-date.


0

se référer ici: https://nathanhoad.net/how-to-colours-in-git/

pas:

  1. Ouvrez ~ / .gitconfig pour l'édition

    vi ~ / .gitconfig

  2. Collez le code suivant:

    [color]
      ui = auto
    [color "branch"]
      current = yellow reverse
      local = yellow
      remote = green
    [color "diff"]
      meta = yellow bold
      frag = magenta bold
      old = red bold
      new = green bold
    [color "status"]
      added = yellow
      changed = green
      untracked = cyan
    
  3. Enregistrez le fichier.

Changez simplement n'importe quel fichier dans votre dépôt local et faites

git status

Il y a déjà le même # answer-29320572 par Victor
critabug
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.