はじめに
- 「Git補完をしらない」「commitブランチを間違える」「git statusを1日100回は使う」そんなあなたに朗報です。
- bashの説明だけに絞っています。zsh? tcsh? 知らない子ですね。
いきなり完成形
.bashrc
# スクリプト読み込み
source $HOME/.git-completion.bash
source $HOME/.git-prompt.sh
# プロンプトに各種情報を表示
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWUPSTREAM=1
GIT_PS1_SHOWUNTRACKEDFILES=
GIT_PS1_SHOWSTASHSTATE=1
############### ターミナルのコマンド受付状態の表示変更
# \u ユーザ名
# \h ホスト名
# \W カレントディレクトリ
# \w カレントディレクトリのパス
# \n 改行
# \d 日付
# \[ 表示させない文字列の開始
# \] 表示させない文字列の終了
# \$ $
export PS1='\[\033[1;32m\]\u\[\033[00m\]:\[\033[1;34m\]\w\[\033[1;31m\]$(__git_ps1)\[\033[00m\] \$ '
##############
git-completion.bashとは
- gitコマンドの補完スクリプト。Tabで補完できてンギモッチイイ!!
導入
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -O ~/.git-completion.bash
chmod a+x ~/.git-completion.bash
echo "source ~/.git-completion.bash" >> ~/.bashrc
source ~/.bashrc
git-prompt.shとは
- プロンプトに各種追加情報を表示可能にするスクリプト
導入
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh -O ~/.git-prompt.sh
chmod a+x ~/.git-prompt.sh
echo "source ~/.git-prompt.sh" >> ~/.bashrc
-
~/.bashrc
内のPS1
変数を__git_ps1
を含むように変更する source ~/.bashrc
オプション(1 or null)
GIT_PS1_SHOWUPSTREAM
- 現在のブランチがupstreamより進んでいるとき">"を、遅れているとき"<"を、遅れてるけど独自の変更もあるとき"<>"を表示する。オプションが指定できるけど(svnをトラックするかとか)
GIT_PS1_SHOWUNTRACKEDFILES
- addされてない新規ファイルがある(untracked)とき"%"を表示する
GIT_PS1_SHOWSTASHSTATE
- stashになにか入っている(stashed)とき"$"を表示する
GIT_PS1_SHOWDIRTYSTATE
- addされてない変更(unstaged)があったとき"*"を表示する、addされているがcommitされていない変更(staged)があったとき"+"を表示する
- 参考: __git_ps1のオプションを設定して様々な情報を表示する
PS1とは
- bashには、プロンプトを制御するために「PS1」という環境変数が使用されている。
- このPS1変数は、exportコマンドを使いさまざまな特殊文字コードを利用すれば、表示形式を変更することが可能
- 参考: Bashのプロンプト変更
おわりに
- 次は勉強がてらtigのお話でも書こうかな