ターミナルブランチの色を変更するには?

ターミナルブランチの色を変更するには?

私の端末には次の出力があります。

pc@pop-os:~/my-project (main)$

プロジェクトはGitHub経由でダウンロードされます。(main)色は緑です。プロジェクトディレクトリに移動したときに端末に表示されるブランチ名に設定しました。変更すると、端末に変更を認識して色を(main)赤に変更するようにしたいと思います。誰でも助けることができますか?

ベストアンサー1

私はこのparseGitBranch機能を使って色を定義します。関数は次のようにする必要があります。

parseGitBranch () {

   if ! git rev-parse --git-dir &> /dev/null; then
      return 
   fi
   branch="($(git branch --show-current))"

   local STATUS
   STATUS=$(git status --porcelain)
   if [ -n "$STATUS" ]; then
      echo -e "\033[38;5;1m $branch" #red
   else
      echo -e "\033[38;5;34m $branch" #green
   fi
}

そして、次のように設定する必要がありますPS1

PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\$(parseGitBranch) \[\033[00m\]\$\n>"

上記のコードは内部にあります~/.bashrc

説明する

次の行は、現在のディレクトリが次のようになっていることを確認します。子プロジェクト:

   if ! git rev-parse --git-dir &> /dev/null; then
      return 
   fi

git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'コードをに変更しましたgit branch --show-current。これは現在のポイント名を取得するより簡単な方法です。
上記の条件がtrueの場合、関数は現在のgitディレクトリの状態を確認します。
プロジェクトに変更があるかどうかを確認する最も効率的な方法はを使用することですgit status --porcelain。したがって、変更がなければ、出力は空にgit status --porcelainなります。-n "$STATUS"STATUSの長さがゼロでないことを確認してください。

trueの場合、-n $STATUS分岐色は赤になります(変更したため)echo -e "\033[38;5;1m $branch" #red
falseの場合、分岐色は緑色になりますecho -e "\033[38;5;34m $branch" #green

確認できますこのリンクBashの色とフォーマットに関する追加情報。端末が一部のフォーマットをサポートしていないか、色が正しく印刷されない可能性があります。

おすすめ記事