Help us understand the problem. What is going on with this article?

「Git補完をしらない」「git statusを1日100回は使う」そんなあなたに朗報【git-completionとgit-prompt】

More than 1 year has passed since last update.

はじめに

  • 「Git補完をしらない」「commitブランチを間違える」「git statusを1日100回は使う」そんなあなたに朗報です。
  • bashの説明だけに絞っています。zsh? tcsh? 知らない子ですね。
  • 説明は英語のまま持ってきている部分が多いです。ご容赦。

いきなり完成形

beautifulPrompt.jpg

.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で補完できてンギモッチイイ!!

導入

  1. wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -O ~/.git-completion.bash
  2. chmod a+x ~/.git-completion.bash
  3. echo "source ~/.git-completion.bash" >> ~/.bashrc
  4. source ~/.bashrc

git-prompt.shとは

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

導入

  1. wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh -O ~/.git-prompt.sh
  2. chmod a+x ~/.git-prompt.sh
  3. echo "source ~/.git-prompt.sh" >> ~/.bashrc
  4. ~/.bashrc内のPS1 変数を __git_ps1 を含むように変更する
  5. 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のお話でも書こうかな
varmil
Typescriptを日本全土へ布教する伝道師。そう Francisco de Jasso y Azpilicueta とはわたしです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした