Wie konfiguriere ich den Mac OS X-Begriff so, dass Git Farbe hat? [geschlossen]

200

Ich habe online eine Mac OS X Git-Demo gesehen, in der mehrere Farben konfiguriert sind.

Zum Beispiel ist seine Eingabeaufforderung gelb , sein lsVerzeichnis ist lila und seine git diffAusgabe hat ~ 4 Farben (pink, hellgrün, rot, hellgelb).

Können Sie mir sagen, wie ich das Mac OS X-Terminal konfigurieren kann, um dies zu erreichen? Es ist definitiv Mac OS X Terminal.app, nicht iTerm.

yinglcs
quelle
3
Nur dass superuser.com noch in der privaten Beta ist und yinglcs wahrscheinlich keinen Zugriff hat.
Fredrik
Gibt es neben den auf blog.stackoverflow.com/2009/07/… genannten Anforderungen eine Beta-Anmeldung für Super User ?
las3rjock
3
Wahrscheinlich nicht, aber wie viele Benutzer wissen davon? Es ist nicht so, dass es auf superuser.com einen Link zu diesem Beitrag gibt, den der Benutzer, der die Frage migriert bekommt, findet, wenn er dort ankommt (wenn ja, kann ich ihn nicht finden).
Fredrik
3
Noch eine hilfreiche Frage geschlossen. Zum Glück nicht, bevor einige Leute antworten konnten.
Ben Thurley
1
Es ist mittlerweile bekannt, dass Git-Fragen zum Thema gehören. Die Schließung von @ casperOne hier ist falsch und ich habe für die Wiedereröffnung gestimmt.
Mark Amery

Antworten:

391

Die Antwort von William Purcell aktiviert nur die Farbe für den Befehl 'git diff'. Führen Sie dies aus, um Farben für alle Git-Befehle zu aktivieren:

$ git config --global color.ui true
phloopy
quelle
Genau das, was ich brauchte. Vielen Dank.
jffgrdnr
1
Vollkommene Perfektion. Danke mein Herr.
Brandon Buck
1
oder Sie können diese Alternative reicher Auswahl hier überprüfen: gist.github.com/trey/2722934
Yannis Dran
@yinglcs, akzeptiere diese Antwort schon, oder?!
Eliran Malka
das funktioniert nicht
KansaiRobot
57

Um Farbe in der Ausgabe von git diff anzuzeigen, müssen Sie git konfigurieren. Versuche zu rennen

$ git config --global color.diff true

um Ihre $ HOME / .gitconfig entsprechend einzustellen.

William Pursell
quelle
William, ja! Das hat mir gefehlt.
Avernet
danke, es funktioniert perfekt!
Antiqe
13

Normalerweise konfigurieren Sie das Terminal nicht dafür ... Das Terminal weiß nicht, was angezeigt wird, aber versuchen Sie dies in Ihrer Shell (wenn Sie bash verwenden, exportieren Sie in einigen anderen Shells nicht, sondern rufen setenv oder auf etwas anderes):

export CLICOLOR=1
export TERM=xterm-color

Sie können dann den LSCOLORS-Generator verwenden, um etwas einzurichten , das Sie exportieren können, indem Sie Folgendes verwenden:

export LSCOLORS=fxfxcxdxbxegedabagacad

(Die oben genannten sollten Ihnen lila Verzeichnisse geben)

Wenn Sie mit dem Ergebnis zufrieden sind, fügen Sie die drei Zeilen entweder Ihrer Datei / etc / bashrc oder der Datei .bashrc im Basisverzeichnis Ihres Benutzers hinzu.

Bearbeiten: Stellen Sie außerdem in Ihrem Terminal sicher, dass das Kontrollkästchen "ANSI-Farben anzeigen" (auf der Seite "Text") aktiviert ist.

Fredrik
quelle
.bashrc funktioniert auch? Auf meinem Mac ist es .bash_profile, ich weiß, dass es unter Linux .bashrc ist, aber ich dachte, dass es auf dem Mac mit der ganzen BSD-Sache anders ist (auch LSCOLORS ist unter Linux und BSD / Mac anders).
Jorge Israel Peña
.bashrc funktioniert für mich ... Und ja, es ist anders. gls verwendet LS_COLORS (das auch über die mit verlinkte Seite generiert werden kann)
Fredrik
Vielen Dank. Aber wie kann man Farben wie 'Weizen', 'Lila' in der Eingabeaufforderung oder die Ausgabe konfigurieren? oder 'pink' in der 'git diff'-Ausgabe. Danke dir.
Yinglcs
Die möglichen Farben sind die, die Sie auf der Website finden, auf die ich verlinkt habe. Sie sind Teil des Standards. Als sie definiert wurden, waren Sie froh, wenn Sie ein Terminal hatten, das 16 Farben anzeigen kann.
Fredrik
13

Dies ist, was ich in meiner .profile-Datei verwende. Funktioniert wie ein Zauber, weil ich so den aktuellen Git-Zweig sowie seinen Zustand durch die Farbe sehen kann. Wenn Sie es ändern möchten, beachten Sie bitte, dass es wichtig ist, Farbcodes zu umgehen, um Probleme mit dem Zeilenvorschub in langen Zeilen zu vermeiden.

# 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.
quelle
Welche .profile-Datei haben Sie erwähnt?
Darshan Puranik
@ DarshanPurani, ich wollte die .profileDatei in meinem $ bash sagen
Marc M
2

Öffnen Sie die Terminal-App und öffnen Sie den Einstellungsdialog entweder über das Menü (Terminal -> Einstellungen) oder durch Drücken von Command+ ,. Wählen Sie nach dem Öffnen des Einstellungsdialogs den Terminalstil im linken Bereich aus und wählen Sie Text in der Schaltflächenleiste aus. Stellen Sie dann sicher, dass das Kontrollkästchen "ANSI-Farben anzeigen" aktiviert ist.

Dadurch werden die Farben auf dem Terminal aktiviert. Um Farben in der Ausgabe des Terminals zu erhalten, müssen Sie ANSI-Farbbefehle in die Daten einbetten, die an das Terminal gesendet werden. Wie dies geschieht, hängt von den Befehlen ab. Zum Beispiel lshat der Befehl (wie oben gezeigt) eine Farboption. Führen Sie für die Farbcodes eine Google-Suche nach "ansi color" durch.

Codey
quelle
Beachten Sie, dass die Frage bereits als Off-Topic geschlossen ist. :)
Ryan Kohn
0

Für farbige ls-Ausgaben würde ich empfehlen, die gnu coreutils zu installieren und stattdessen diese Version von ls zu verwenden. Für jede Version von ls müssen Sie das richtige Flag übergeben, nämlich --color für die gnu-Version oder -G für die Standardversion von OS X. Sie können also so etwas tun

alias ls='ls --color'

in Ihrem .bashrc.

Um Ihre Eingabeaufforderung einzufärben, müssen Sie die richtigen Farbcodes für Ihr Terminal verwenden, aber meine verwendet

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

produzieren

[hostname:directory] username%

in fettem Weiß.

Amok
quelle