LoginSignup
2
1

More than 1 year has passed since last update.

bash + git環境でプロンプトにブランチ名と作業ツリーの状態を表示させて快適な開発環境を作る

Last updated at Posted at 2021-07-17

tl;dr

bash + git環境で開発中にいまのブランチがわからなくなって、いちいちgit statusをたたいて状態確認するのがめんどうでたまらない人向けに、プロンプトにgitのブランチ名と作業ツリーの状態を表示させる方法をまとめます。

用意するもの・動作確認環境

bashならどんな環境でも動くはずですが、わたしの環境は下記の通り。

  • Windows 10 Pro
  • WSL2 (Windows Subsystem for Linux 2)
  • Ubuntu 20.04.2 LTS

WSL2の公式ドキュメントはこちら

結論

.bashrcに下記のように記述する。

# for prompt
source ~/.git-completion.bash
source ~/.git-prompt.sh

GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWUNTRACKEDFILES=true
GIT_PS1_SHOWSTASHSTATE=true
GIT_PS1_SHOWUPSTREAM=auto

PS1="\[\e[1;32m\]\u@\h\[\e[m\]:\[\e[1;34m\]\W\[\e[m\]\[\e[33m\]\$(__git_ps1)\[\e[m\]\$ "

プロンプトが下記のようになる。

user_name@machine_name:directory(branch_name branch_status)$

実際は色が付くのでこんな感じになる。
2021-07-17_09h45_04.png

導入方法

git-completion.bashgit-prompt.shを取得して、.bashrcを編集するだけでok。

$ wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -O ~/.git-completion.bash
$ wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh -O ~/.git-prompt.sh

取得するシェルスクリプト

git-completion.bashとは

gitコマンドの補完スクリプト。

git-prompt.shとは

プロンプトに各種追加情報を表示可能にするスクリプト

設定値の解説

環境変数

設定値 意味
GIT_PS1_SHOWDIRTYSTATE=true addされていない変更の存在を「*」で示す
commitされていない変更の存在を「+」で示す
GIT_PS1_SHOWUNTRACKEDFILES=true addされていない新規ファイルの存在を「%」で示す
GIT_PS1_SHOWSTASHSTATE=true stashがある場合は「$」で示す
GIT_PS1_SHOWUPSTREAM=auto upstreamと同期している場合は「=」で示す
upstreamより進んでいる場合は「>」で示す
upstreamより遅れている場合は「<」で示す

PS1

設定値 意味
\u ユーザ名
\h ホスト名
\W カレントディレクトリ
\w カレントディレクトリのパス
\n 改行
\d 日付
\[ 表示させない文字列の開始
\] 表示させない文字列の終了
\$ $
1;32などの数字 表示色指定

わたしのPS1は一例です。
他にもいろいろ設定できるので、ご自分の好みの設定をみつけてください。

参考URL

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1