WSL2 Ubuntu で Git ブランチをシェルプロンプトに表示する方法
1. プロンプト用スクリプトの場所を確認
Ubuntu では git-prompt.sh ではなく git-sh-prompt というファイル名で提供されている場合がある。
bash
ls /usr/lib/git-core/git-sh-prompt補足:
/etc/bash_completion.d/git-promptが存在し、内部で/usr/lib/git-core/git-sh-promptを読み込む仕組みになっている。
2. ~/.bashrc に追加
bash
# git-sh-prompt の読み込み
if [ -f /usr/lib/git-core/git-sh-prompt ]; then
source /usr/lib/git-core/git-sh-prompt
fi
# オプション: 詳細な状態表示
export GIT_PS1_SHOWDIRTYSTATE=1 # 未コミットの変更: * (staged: +)
export GIT_PS1_SHOWUNTRACKEDFILES=1 # 未追跡ファイル: %
export GIT_PS1_SHOWSTASHSTATE=1 # stash あり: $
export GIT_PS1_SHOWUPSTREAM="auto" # upstream との差分: < > =
# プロンプトにブランチ名を表示
export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[33m\]$(__git_ps1 " (%s)")\[\033[00m\]\$ '3. 設定を反映
bash
source ~/.bashrcGit リポジトリ内にいるときだけ、ブランチ名が (main) のように黄色で表示される。
参考: スクリプトが見つからない場合
環境内にスクリプトがあるか確認する方法:
bash
find / -name "git-sh-prompt" -o -name "git-prompt.sh" 2>/dev/null見つからない場合は GitHub から直接ダウンロードできる:
bash
curl -o ~/.git-prompt.sh https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.shこの場合、~/.bashrc の source 行を以下に変更する:
bash
source ~/.git-prompt.sh