Mac OS X terimini git renk olacak şekilde nasıl yapılandırırım? [kapalı]


200

Birden fazla renge sahip olacak şekilde yapılandırıldığı bir Mac OS X git demosunu çevrimiçi olarak gördüm.

Örneğin, istemi kehribar, lsdizini mor ve git diffçıktısı ~ 4 renktedir (pembe, açık yeşil, kırmızı, soluk sarı).

Bunu başarmak için Mac OS X terminalini nasıl yapılandırabileceğimi söyleyebilir misiniz? Kesinlikle Mac OS X Terminal.app, iTerm değil.


3
Dışında superuser.com hala özel beta ve yinglcs muhtemelen erişim yok.
Fredrik

Blog.stackoverflow.com/2009/07/… adresinde belirtilenlerin yanı sıra Süper Kullanıcı beta kaydolma gereksinimi var mı?
las3rjock

3
Muhtemelen hayır, ama kaç kullanıcı bunu biliyor? Taşınan soruyu alan kullanıcının oraya ulaştığında bulacağını superuser.com'da bu yazının bir bağlantısı yok gibi görünüyor (eğer öyleyse, bulamıyorum).
Fredrik

3
Yine başka bir yardımcı soru kapatıldı. Neyse ki bazı insanlar cevap vermeden önce.
Ben Thurley

1
Git sorularının konuyla ilgili olduğu şimdiye kadar iyi anlaşılmıştır; @ casperOne buradaki kapanış yanlış ve yeniden açılmaya oy verdim.
Mark Amery

Yanıtlar:


391

William Purcell'in cevabı sadece 'git diff' komutu için rengi etkinleştirir. Tüm git komutları için renkleri etkinleştirmek üzere bunu yapın:

$ git config --global color.ui true

Tam ihtiyacım olan şey. Teşekkürler.
jffgrdnr

1
Saf mükemmellik. Teşekkürler bayım.
Brandon Buck

1
ya da bu alternatif daha zengin seçeneği buradan kontrol edebilirsiniz: gist.github.com/trey/2722934
Yannis Dran

@yinglcs, bu yanıtı kabul et, olur mu ?!
Eliran Malka

bu işe yaramıyor
KansaiRobot

57

Git diff çıkışında renk görüntülemek için git'i yapılandırmanız gerekir. Koşmayı dene

$ git config --global color.diff true

$ HOME / .gitconfig dosyanızı uygun şekilde ayarlamak için.


William, evet! Bu benim eksikti.
avernet

teşekkürler, mükemmel çalışıyor!
antiqe

13

Normalde terminali yapacak şekilde yapılandırdığınız bir şey değildir ... Terminal gösterdiği şeyin farkında değildir ancak bunu kabuğunuzda deneyin (bash kullanıyorsanız, dışa aktarmadığınız ancak setenv veya başka bir şey):

export CLICOLOR=1
export TERM=xterm-color

Ardından , aşağıdaki gibi bir şey kullanarak dışa aktarabileceğiniz bir şey ayarlamak için LSCOLORS üretecini kullanabilirsiniz :

export LSCOLORS=fxfxcxdxbxegedabagacad

(Yukarıdakiler size mor dizinler vermelidir)

Sonuçtan ve sonuçtan memnun kaldığınızda, üç satırı / etc / bashrc veya kullanıcı ana dizininizdeki .bashrc dosyasına ekleyin.

Düzenleme: Ayrıca, terminalinizde "ANSI renklerini görüntüle" ("Metin" sayfasında) onay kutusunun işaretli olduğundan emin olun.


.bashrc da çalışıyor mu? Mac'imde .bash_profile, Linux'ta .bashrc olduğunu biliyorum, ancak tüm BSD şeyiyle mac'ta farklı olduğunu düşündüm (Ayrıca LSCOLORS Linux ve BSD / Mac'te farklı, öyle görünüyor).
Jorge Israel Peña

.bashrc benim için çalışıyor ... Ve evet, bu farklı. gls, LS_COLORS kullanır (bu bağlantı, bağlantılı sayfa kullanılarak da üretilebilir)
Fredrik

Teşekkürler. Ancak istemde veya buğday çıktısında 'buğday', 'mor' gibi renklere nasıl yapılandırılabilir? veya 'git diff' çıktısında 'pembe' olabilir. Teşekkür ederim.
yinglcs

Olası renkler, bağlandığım sitede bulabileceğiniz renktir, standardın bir parçasıdır ve tanımladıklarında 16 renk gösterebilen bir terminaliniz varsa mutluydunuz.
Fredrik

13

.Profile dosyamda kullandığım bu. Bir cazibe gibi çalışır çünkü geçerli git dalını ve durumunu renk aracılığıyla görmemi sağlar. Bunu değiştirmek isterseniz , uzun satırlarda satır besleme sorunlarından kaçınmak için renk kodlarından kaçmanın önemli olduğunu lütfen unutmayın .

# 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}\]$ '

Hangi .profile dosyasından söz ettiniz?
Darshan Puranik

@DarshanPurani, .profiledosyayı $ bash'ımda söylemek istedim
Marc M

2

Terminal uygulamasını açın, ardından menüden (Terminal -> Tercihler) veya Command+ tuşuna basarak tercihler diyaloğunu açın ,. Tercihler iletişim kutusu açıldığında, soldaki bölmeden terminal stilini seçin, "ANSI renklerini görüntüle" onay kutusunun işaretli olduğundan emin olmak için düğme çubuğundan Metin'i seçin.

Bu terminaldeki renkleri etkinleştirir. Terminaldeki çıkışta renk elde etmek için, ANSI renk komutlarını terminale gönderilen verilere gömmeniz gerekir. Bunun nasıl yapılacağı komutlara bağlıdır. Örneğin (yukarıda gösterildiği gibi) lskomutun bir renk seçeneği vardır. Renk kodları için "ansi color" için bir google araması yapın.


Sorunun konu dışı olarak zaten kapalı olduğunu unutmayın. :)
Ryan Kohn

0

Renkli ls çıkışı için gnu coreutils kurulumunu ve bunun yerine ls sürümünü kullanmanızı tavsiye ederim. Ls'nin her iki sürümü için de doğru bayrağı iletmeniz gerekir; bu, gnu sürümü için --color veya standart OS X sürümü için -G'dir. Böylece şöyle bir şey yapabilirsiniz

alias ls='ls --color'

.bashrc.

İsteminizi renklendirmek için terminaliniz için doğru renk kodlarını kullanmanız gerekir, ancak benimki

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

üretmek için

[hostname:directory] username%

kalın beyaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.