Comment configurer le terme Mac OS X pour que git ait de la couleur? [fermé]

200

J'ai vu une démonstration de Mac OS X git en ligne dans laquelle il est configuré pour avoir plusieurs couleurs.

Par exemple, son invite est ambre, son lsrépertoire est violet et sa git diffsortie a ~ 4 couleurs (rose, vert clair, rouge, jaune pâle).

Pouvez-vous me dire comment configurer le terminal Mac OS X pour y parvenir? C'est définitivement Mac OS X Terminal.app, pas iTerm.

yinglcs
la source
3
Sauf que superuser.com est toujours en version bêta privée et yinglcs n'y a probablement pas accès.
Fredrik
Y a-t-il une exigence d'inscription à la version bêta de Super User en plus de ce qui est mentionné sur blog.stackoverflow.com/2009/07/… ?
las3rjock
3
Probablement pas, mais combien d'utilisateurs le savent? Ce n'est pas comme s'il y avait un lien vers ce message sur superuser.com que l'utilisateur qui obtient la question migrée trouvera quand il y arrivera (si c'est le cas, je ne le trouve pas).
Fredrik
3
Une autre question utile s'est terminée. Heureusement, pas avant que certaines personnes puissent répondre.
Ben Thurley
1
Il est désormais bien établi que les questions Git sont sur le sujet; La fermeture de @ casperOne ici est fausse, et j'ai voté pour la réouverture.
Mark Amery

Réponses:

391

La réponse de William Purcell active uniquement la couleur pour la commande 'git diff'. Faites ceci pour activer les couleurs pour toutes les commandes git:

$ git config --global color.ui true
phloopy
la source
Juste ce dont j'avais besoin. Merci.
jffgrdnr
1
Perfection pure. Merci Monsieur.
Brandon Buck du
1
ou vous pouvez vérifier cet autre choix plus riche ici: gist.github.com/trey/2722934
Yannis Dran
@yinglcs, acceptez déjà cette réponse, voulez-vous?!
Eliran Malka
cela ne fonctionne pas
KansaiRobot
57

Pour afficher la couleur dans la sortie de git diff, vous devez configurer git. Essayez de courir

$ git config --global color.diff true

pour définir votre $ HOME / .gitconfig de manière appropriée.

William Pursell
la source
William, oui! C'est ce qui me manquait.
avernet
merci, cela fonctionne parfaitement!
antiqe
13

Ce n'est normalement pas quelque chose que vous configurez le terminal pour faire ... Le terminal ne sait pas ce qu'il montre mais essayez ceci dans votre shell (si vous utilisez bash, dans certains autres shells que vous n'exportez pas mais appelez setenv ou autre chose):

export CLICOLOR=1
export TERM=xterm-color

Vous pouvez ensuite utiliser le générateur LSCOLORS pour configurer quelque chose que vous pouvez exporter en utilisant quelque chose comme:

export LSCOLORS=fxfxcxdxbxegedabagacad

(ce qui précède devrait vous donner des répertoires violets)

Lorsque vous avez terminé et satisfait du résultat, ajoutez les trois lignes à votre / etc / bashrc ou au fichier .bashrc dans le répertoire personnel de votre utilisateur.

Modifier: De plus, dans votre terminal, assurez-vous que la case "Afficher les couleurs ANSI" (sur la page "Texte") est cochée.

Fredrik
la source
.bashrc fonctionne aussi? Sur mon mac, c'est .bash_profile, je sais que c'est .bashrc sur Linux mais je me suis dit que c'était différent sur mac avec tout BSD (LSCOLORS est également différent sur Linux et BSD / Mac, semble-t-il).
Jorge Israel Peña
.bashrc fonctionne pour moi ... Et oui, c'est différent. gls utilise LS_COLORS (qui peut également être généré en utilisant la page liée à)
Fredrik
Merci. Mais comment configurer des couleurs comme «blé», «violet» dans l'invite ou la sortie ls? ou 'rose' dans la sortie 'git diff'. Je vous remercie.
yinglcs
Les couleurs possibles sont celles que vous pouvez trouver sur le site auquel j'ai lié, cela fait partie de la norme et quand ils l'ont défini, vous étiez heureux si vous aviez un terminal capable d'afficher 16 couleurs.
Fredrik
13

C'est ce que j'utilise dans mon fichier .profile. Fonctionne comme un charme car il me permet de voir la branche git actuelle ainsi que son état à travers la couleur. Si vous souhaitez le modifier, veuillez noter qu'il est important d' échapper aux codes de couleur afin d'éviter les problèmes de saut de ligne sur les longues lignes.

# Setting GIT prompt
c_cyan=`tput setaf 6`
c_red=`tput setaf 1`
c_green=`tput setaf 2`
c_sgr0=`tput sgr0`

branch_color ()
{
    if git rev-parse --git-dir >/dev/null 2>&1
    then
        color=""
        if git diff --quiet 2>/dev/null >&2 
        then
            color=${c_green}
        else
            color=${c_red}
        fi
    else
        return 0
    fi
    echo -n $color
}

parse_git_branch ()
{
    if git rev-parse --git-dir >/dev/null 2>&1
    then
        gitver="["$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')"]"
    else
        return 0
    fi
echo -e $gitver
}

#It's important to escape colors with \[ to indicate the length is 0
PS1='\u@\[${c_red}\]\W\[${c_sgr0}\]\[\[$(branch_color)\]$(parse_git_branch)\[${c_sgr0}\]$ '
Marc M
la source
Quel fichier .profile vous avez mentionné?
Darshan Puranik
@DarshanPurani, je voulais dire le .profilefichier dans mon $ bash
Marc M
2

Ouvrez l'application du terminal, puis ouvrez la boîte de dialogue des préférences via le menu (Terminal -> Préférences) ou en appuyant sur Command+ ,. Une fois la boîte de dialogue des préférences ouverte, sélectionnez le style de terminal dans le volet de gauche, sélectionnez Texte dans la barre de boutons, puis assurez-vous que la case "Afficher les couleurs ANSI" est cochée.

Cela activera les couleurs sur le terminal. Pour obtenir des couleurs dans la sortie du terminal, vous devrez intégrer des commandes de couleur ANSI dans les données envoyées au terminal. La manière de procéder dépend des commandes. Par exemple (comme indiqué ci-dessus), la lscommande a une option de couleurs. Pour les codes de couleur, effectuez une recherche google pour "ansi color".

codé
la source
Notez que la question est déjà fermée comme hors sujet. :)
Ryan Kohn
0

Pour la sortie ls colorée, je recommanderais d'installer le gnu coreutils et d'utiliser cette version de ls à la place. Pour chaque version de ls, vous devrez lui passer le drapeau correct, qui est --color pour la version gnu ou -G pour la version OS X standard. Vous pouvez donc faire quelque chose comme

alias ls='ls --color'

dans votre .bashrc.

Pour colorer votre invite, vous devrez utiliser les codes de couleurs corrects pour votre terminal, mais le mien utilise

PROMPT="$(print '%{\e[0;38m%}%{\e[1;1m%]%}[%m:%c] %n%%%{\e[0m%}') "

produire

[hostname:directory] username%

en gras blanc.

Amok
la source