Mac OS Xの用語を構成してgitに色を付けるにはどうすればよいですか?[閉まっている]


200

Mac OS Xのgitデモをオンラインで見たところ、複数の色を持つように構成されています。

たとえば、彼のプロンプトはアンバーで、lsディレクトリは紫で、git diff出力は4色(ピンク、薄緑、赤、淡黄色)です。

それを実現するためにMac OS Xターミナルをどのように設定することができますか?これは間違いなくiTermではなくMac OS X Terminal.appです。


3
ただし、superuser.comはまだプライベートベータ版であり、yinglcsはアクセスできません。
Fredrik、

blog.stackoverflow.com/2009/07/…に記載されているもの以外に、スーパーユーザーのベータサインアップ要件はありますか?
las3rjock 2009

3
おそらくそうではありませんが、何人のユーザーがそれについて知っていますか?superuser.comにその投稿へのリンクがあるようではありません。移行された質問を受け取ったユーザーは、そこにたどり着いたときに見つけます(もしそうなら、私はそれを見つけることができません)。
フレドリック、

3
さらに別の役立つ質問が終了しました。ありがたいことに、一部の人々は答えることができる前にありませんでした。
Ben Thurley、2015年

1
Gitの質問が話題になっていることは、今では十分に確立されています。@casperOneのここでの閉鎖は間違っており、再開するように投票されました。
マークアメリー2017年

回答:


391

ウィリアムパーセルの答えは、「git diff」コマンドの色のみを有効にします。これを実行して、すべてのgitコマンドの色を有効にします。

$ git config --global color.ui true

ちょうど私が必要としたもの。ありがとう。
jffgrdnr 2013年

1
純粋な完成度。ありがとうございます。
Brandon Buck

1
または、こちらのより豊富な選択肢をここで確認できます:gist.github.com/trey/2722934
Yannis Dran

@yinglcs、この回答をすでに受け入れていますか?
Eliran Malka 2017

これは機能しません
KansaiRobot

57

git diffの出力で色を表示するには、gitを構成する必要があります。実行してみてください

$ git config --global color.diff true

$ HOME / .gitconfigを適切に設定します。


ウィリアムはい これは私が欠けていたものです。
avernet 2009

ありがとう、完璧に動作します!
antiqe 2013

13

これは通常、ターミナルが実行するように構成するものではありません...ターミナルは何が表示されているかを認識していませんが、シェルでこれを試してください(bashを使用している場合、他の一部のシェルではエクスポートせずにsetenvまたは他のもの):

export CLICOLOR=1
export TERM=xterm-color

次にLSCOLORSジェネレーターを使用して、次のようなものを使用してエクスポートできるものをセットアップできます。

export LSCOLORS=fxfxcxdxbxegedabagacad

(上記では紫色のディレクトリが表示されます)

完了し、結果に満足したら、3行を/ etc / bashrcまたはユーザーのホームディレクトリの.bashrcファイルに追加します。

編集:また、ターミナルで、[テキスト]ページの[ANSIカラーを表示する]チェックボックスがオンになっていることを確認してください。


.bashrcも機能しますか?私のMacでは.bash_profileですが、Linuxでは.bashrcであることがわかっていますが、MacではBSD全体とは異なると思いました(LinuxとBSD / MacではLSCOLORSも異なるようです)。
ホルヘイスラエルペーニャ

.bashrcは私にとってはうまくいきます...そして、はい、それは異なります。glsはLS_COLORSを使用します(リンクされたページを使用して生成することもできます)
Fredrik

ありがとう。しかし、プロンプトまたはls出力で「小麦」、「紫」のような色に設定するにはどうすればよいですか?または「git diff」出力の「pink」。ありがとうございました。
yinglcs 2009

可能な色は、私がリンクしたサイトで見つけることができる色であり、それは標準の一部であり、彼らがそれを定義したときに、16色を表示できる端末があれば満足でした。
フレドリック、

13

これは、.profileファイルで使用するものです。色で現在のgitブランチとその状態を確認できるので、魅力のように機能します。変更する場合は、長い行での改行の問題を回避するために、カラーコードエスケープすることが重要であることに注意してください。

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

あなたが言及した.profileファイルはどれですか?
Darshan Puranik 2016年

@DarshanPurani、私は.profile$ bashのファイルを言うつもりでした
Marc M

2

ターミナルアプリを開き、メニュー([ターミナル]-> [設定])またはCommand+ を押して、設定ダイアログを開きます,。設定ダイアログが開いたら、左側のペインからターミナルスタイルを選択し、ボタンバーから[テキスト]を選択して、[ANSIカラーを表示する]チェックボックスがオンになっていることを確認します。

端末の色が有効になります。端末の出力で色を取得するには、端末に送信されるデータにANSI色コマンドを埋め込む必要があります。これがどのように行われるかは、コマンドによって異なります。たとえば、(上に示したように)lsコマンドにはカラーオプションがあります。カラーコードについては、「ansi color」のグーグルルックアップを実行します。


質問はすでにトピック外としてクローズされていることに注意してください。:)
ライアンコーン

0

色付きのls出力の場合、gnu coreutilsをインストールし、代わりにそのバージョンのlsを使用することをお勧めします。どちらのバージョンのlsの場合も、正しいフラグを渡す必要があります。これは、gnuバージョンの--colorまたは標準のOS Xバージョンの-Gです。だからあなたは次のようなことができます

alias ls='ls --color'

あなたの.bashrcに。

プロンプトに色を付けるには、端末に適した色コードを使用する必要がありますが、私の場合は

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

生産する

[hostname:directory] username%

太字の白。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.