Skip to content

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 ~/.bashrc

Git リポジトリ内にいるときだけ、ブランチ名が (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

この場合、~/.bashrcsource 行を以下に変更する:

bash
source ~/.git-prompt.sh