git diff --name-status を使用して状態に応じてファイル名をカラー化する

git diff --name-status を使用して状態に応じてファイル名をカラー化する

私はしばしばgit diff --name-status BRANCH_NAME変更されたファイルのリストを取得するためにこれを使用します。このコマンドの出力は、git status追加されたファイルの場合は緑、変更の場合は青、削除の場合は赤などのように色付けできますか?

重複ではありません。Git出力に色を割り当てるには?これは、出力の他の部分をカラー化したいと考えており、設定ファイルの提案された変更が適用されないためです。

ベストアンサー1

私はこれを行う公式な方法がわかりませんが、この記事を書いただけで、私にとっては効果的でした。
次のbashスクリプトを次のcolor_git_diff.sh 名前のファイルに入れます:(または希望の名前)

#!/usr/bin/env bash

for i in "$@"
do
    if  grep -q "^M" <<< "$i"
    then
        echo -e "\e[33m $i \e[0m"
    elif  grep -q "^D" <<< "$i"
    then
        echo -e "\e[31m $i \e[0m"
    fi
done

スクリプトを適用するには、次のように呼び出すことができます。

git diff --name-status | xargs --delimiter="\n" ./color_git_diff.sh

明らかに毎回呼び出したくないので、それを自分のものに入れて、bashrc関数やエイリアスなどを割り当てる必要があります。
これは修正または削除されたファイルに対してのみカラー出力を生成し、修正されたファイルを黄色に設定しました。頭の上にある青のためのansiエスケープコードが何であるかわかりません。おそらくそうだと思いました\e[36m。とにかく、使用したい場合は、直接追加するだけです -

おすすめ記事