Existe-t-il un moyen de colorer la sortie pour git (ou toute commande)?
Considérer:
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
#
La sortie est identique, mais les informations sont totalement différentes: le fichier est passé de non mis en scène à staged pour commit.
Y at-il un moyen de coloriser la sortie? Par exemple, les fichiers non mis en scène sont rouges, les fichiers mis en scène sont verts?
Ou même Changes not staged for commit:
au rouge et # Changes to be committed:
au vert?
Travailler dans Ubuntu.
EDIT: googler 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 à une sortie de commande?
Réponses:
Vous pouvez créer une section
[color]
dans votre~/.gitconfig
avec par exemple le contenu suivantVous pouvez également contrôler avec précision ce que vous voulez colorer, par exemple:
J'espère que cela vous permet de commencer. Et bien sûr, vous avez besoin d'un terminal prenant en charge la couleur.
la source
[color "status"]
section que j'ai ajoutéebranch = yellow
.Vous voulez probablement utiliser
La
auto
partie indique que git n'utilisera que la couleur sur les terminaux qui la supportent et que vous n'obtiendrez pas de séquences ANSI si vous redirigez la sortie des commandes git vers un fichier, par exemple. Réglage àtrue
est la même queauto
, ce qui est également la valeur par défaut depuis Git 1.8.4.Il
color.ui
s'agit d'une méta-configuration qui inclut toutes les différentescolor.*
configurations disponibles avec les commandes git.Ceci est expliqué en profondeur dans
git help config
.la source
true
(quiauto
pointe vers) etalways
? J'ai lu la documentation mais je ne comprends toujours pas la différence.la source
La réponse acceptée donne la solution la plus courante. Si, pour une raison quelconque, vous ne devez pas modifier de manière permanente la configuration, comme le fait cette solution, vous pouvez remplacer la configuration pour une seule commande git:
Par exemple:
Testé: pris en charge sur git 2.4.6, non pris en charge sur git 1.7.1.
la source
less
comme je viens de le faire, vous pouvez faireless
passer les caractères d'échappement de couleurs au terminal vialess -R
.la source
Vous pouvez le faire avec la sortie de commande arbitraire Coloriste . La plupart du temps, cela fonctionne, mais je n’ai pas trouvé comment contourner un bogue dans lequel les invites qui attendaient une entrée ne s'affichent pas. Vous ne pouvez pas simplement taper l’entrée nécessaire connue et appuyer sur Entrée pour continuer dans tous les cas.
Exemple de
~/.acoc.conf
pourgit
:..qui fonctionne bien avec
alias git="acoc git"
dans.bash_profile
.la source
acoc
?Pour une couleur passe
git diff
dansless
, cela fonctionne:la source
Je sais que le poste a quatre ans, mais personne n’a répondu de mon camp, le daltonien. Si vous pouvez distinguer les couleurs, ignorez mon post.
"git status", par exemple, affiche un texte blanc sur fond blanc / noir sur fond blanc (lisible), gris foncé à supprimer (illisible sur fond noir mais lisible sur fond blanc) et gris moyen à ajouter (orge lisible sur fond noir). fond illisible sur fond blanc). J'avais l'habitude de basculer l'arrière-plan de la fenêtre de mon terminal sur / entre blanc / noir afin de pouvoir lire le texte illisible. Une solution simple c'est plus:
Cela rend tout le texte lisible sur une fenêtre de terminal à fond blanc ou noir standard.
la source
color.ui = never
).ou désactiver tout / la plupart des colorisations via:
la source
git
et veut trouver un moyen de le faire de manière plus globale. Si vous connaissez une telle méthode, veuillez éditer votre réponse pour l'expliquer.