Existe-t-il un moyen de colorer la sortie pour git (ou toute commande)?

Considérez:

 baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: app/models/message_type.rb # no changes added to commit (use "git add" and/or "git commit -a") baller@Laptop:~/rails/spunky-monkey$ git add app/models  

Et

 baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: app/models/message_type.rb #  

Le résultat est le même, mais les informations sont totalement différentes: le fichier est passé de non-sté à stagé pour la validation.

Y a-t-il un moyen coloriser la sortie? Par exemple, les fichiers qui ne sont pas mis en scène sont rouges, les fichiers mis en scène sont verts?

Ou même Changes not staged for commit: en rouge et # Changes to be committed: en vert?

Vous travaillez sous Ubuntu.

EDIT: Google a trouvé cette réponse qui fonctionne très bien: git config --global --add color.ui true.

Cependant, existe-t-il une solution plus générale pour ajouter de la couleur à un sortie de commande?

Commentaires

  • Vous voulez quelque chose qui colorise toutes les sorties de commande? Comment pourrait-il savoir quelles parties colorer?
  • Je suppose quil y avait un moyen de le configurer en utilisant une expression régulière: chaque couleur pourrait avoir une expression régulière de début. Et il pourrait y avoir une expression régulière de couleur par défaut pour désactiver toutes les couleurs. Et, si le texte  » foo  » apparaît, affichez-le dans une certaine couleur …

Réponse

Vous pouvez créer une section [color] dans votre ~/.gitconfig avec eg le contenu suivant

[color] diff = auto status = auto branch = auto interactive = auto ui = true pager = true 

Vous pouvez également contrôler précisément ce que vous voulez colorer de quelle manière, par exemple

[color "status"] added = green changed = red bold untracked = magenta bold [color "branch"] remote = yellow 

Jespère que cela vous permettra de démarrer. Et bien sûr, vous avez besoin dun terminal qui prend en charge la couleur.

Commentaires

  • Je pense que cela pourrait valoir la peine de mettre git config –global color.ui auto (réponse de @Evgeny ‘) en haut de la vôtre … Je pense que ‘ est probablement ce que la plupart des gens sont à la recherche de. Jai ‘ avoir voté pour les deux … Je ‘ je dis simplement, pour le bien dInternet tel quil vient ici, je pense quun beaucoup de gens veulent juste cette simple doublure. Tant mieux sils lobtiennent, plus votre bonté supplémentaire.
  • Cela a parfaitement fonctionné pour moi – dans la section [color "status"], jai ajouté branch = yellow.
  • vous pouvez ajouter la section [color] au projet ‘ s .git / config file aussi
  • Et vous peut simplement définir une variable de configuration pour un seul appel dune commande git: stackoverflow.com/a/18304605/134044

Réponse

Vous voudrez probablement utiliser

git config --global color.ui auto 

Le auto dit que git nessaiera dutiliser la couleur que sur les terminaux qui le supportent, et vous nobtiendrez pas de séquences ANSI si vous redirigez la sortie des commandes git vers un fichier par exemple. Le définir sur true est identique à auto, et cest également la valeur par défaut depuis Git 1.8.4.

La color.ui est une méta-configuration qui inclut toutes les différentes configurations color.* disponibles avec les commandes git.

Ceci est expliqué en profondeur dans git help config.

Commentaires

  • Pouvez-vous expliquer la différence entre color.ui true (vers lequel pointe auto) par rapport à always? Jai lu la documentation mais je ne comprends toujours pas la différence.
  • @chharvey color.ui = auto + git diff | less – pas de couleurs, color.ui = always + git diff | less – sortie colorée. LESS=-R est implicite.

Réponse

git config --global color.ui auto git config --global color.branch auto git config --global color.status auto 

Commentaires

  • FYI, seulement cela a fonctionné pour la version 1.5.2.1 de git, les autres réponses nont pas ‘ t.

Réponse

La réponse acceptée donne la solution la plus courante. Si, pour une raison quelconque, vous navez pas besoin de modifier définitivement la configuration, ce que fait cette solution, vous pouvez remplacer la configuration pour une seule commande git:

git -c color.ui=always <usual git command and options> 

Par exemple :

git -c color.ui=always status git -c color.ui=always diff 

Testé: pris en charge sur git 2.4.6, non pris en charge sur git 1.7.1.

Commentaires

  • Pour toute autre personne essayant dobtenir de la couleur en passant dans less comme je viens de le faire, vous pouvez créer less transmettez les caractères déchappement de couleur au terminal via less -R.
  • Quand cette fonctionnalité a-t-elle été ajoutée?

Réponse

git config --global color.ui always git config --global color.branch always git config --global color.diff always git config --global color.interactive always git config --global color.status always git config --global color.grep always git config --global color.pager true git config --global color.decorate always git config --global color.showbranch always 

Réponse

ou désactivez tout / presque toute la colorisation via:

git config --global color.ui false git config --global color.branch false git config --global color.diff false git config --global color.interactive false git config --global color.status false git config --global color.grep false git config --global color.pager false git config --global color.decorate false git config --global color.showbranch false 

Commentaires

  • OP ne ‘ ne cherchait pas à désactiver les couleurs, plutôt qu’à activer les couleurs . Dans le PO, il a indiqué comment faire pour git et il veut un moyen de le faire dans un sens plus global. Si vous connaissez une telle méthode, veuillez modifier votre réponse pour lexpliquer.
  • Parfois, les gens recherchent quelque chose de proche mais légèrement différent – mais merci pour le vote défavorable.
  • Jai aimé it @theRiley

Réponse

Pour un git diff coloré dans less, cela fonctionne:

git -c color.diff=always diff [...] | less -R 

Réponse

Vous pouvez le faire avec Coleur de sortie de commande arbitraire . Cela fonctionne principalement, mais je nai pas trouvé comment contourner un bogue où les invites qui attendent une entrée ne sont pas affichées et vous ne pouvez pas simplement taper lentrée nécessaire connue et appuyer sur Entrée pour continuer dans tous les cas.

Exemple de ~/.acoc.conf pour git:

# git [git/ae] /.*(error:.*)/ red+bold /.*(warning:.*)/ yellow /.*(hint:.*)/ magenta /.*(up-to-date).*/ green+bold /.*(nothing to commit).*/ green /^(\+.*)/ green /^(-.*)/ red 

. .qui fonctionne bien avec alias git="acoc git" dans .bash_profile.

Commentaires

  • Pouvez-vous partager votre configuration pour acoc?
  • Nvm, cétait facile à écrire. 🙂 Ajouté à la réponse.

Réponse

Je sais que le message date de quatre ans, mais personne na répondu de mon camp, le daltonien. Si vous le pouvez distinguer les couleurs, ignorer mon message.

« git status » par exemple affiche du texte blanc sur fond / noir sur fond blanc (lisible), gris foncé pour supprimé (illisible sur fond noir mais lisible sur fond blanc) un fond blanc) et gris moyen pour un dded (orge lisible sur fond noir, illisible sur fond blanc). Javais lhabitude de basculer larrière-plan de la fenêtre de mon terminal vers / depuis le blanc / noir pour pouvoir lire le texte illisible. Une solution simple est plus:

 git status | more 

Cela rend tout le texte lisible sur une fenêtre de terminal à fond blanc ou noir standard.

Commentaires

  • Vous pouvez également modifier la configuration pour que tout ne soit pas coloré par défaut (color.ui = never).

Réponse

Pour coloriser la sortie de git diff, vous pouvez ajouter une section color.diff à ~ / .gitconfig. Par exemple:

[color "diff"] new = bold italic 154 old = bold italic 196 

Ici 154 et 196 sont ANSI Codes de 256 couleurs. Pour plus de détails, consultez man git config.

Réponse

Jetez un œil à https://github.com/dandavison/delta pour la coloration syntaxique du langage de la sortie (git) diff, et la coloration colorée des lignes ajoutées / supprimées dans le diff .

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *