19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Bash のプロンプトに Git のブランチ名を表示する

Last updated at Posted at 2016-09-14

Bash のプロンプトに Git のブランチ名を表示する状態でリポジトリの作成からいくつかのファイル操作やコミットやスタッシュを実行した Terminal のスクリーンショット

OS X で環境構築するときに忘れないように Bash のプロンプトに Git のブランチ名を表示する設定をメモっとく。Bash で Git のコマンドをオートコンプリートするの続き。

前提として Homebrew で bash-completion がインストールされていることとする。インストールの詳細はBash で Git のコマンドをオートコンプリートするを参照のこと。

Bash のプロンプトに Git のブランチ名を表示する

Git を Homebrew でインストールしている場合

Homebrew で Git をインストールすると git-prompt.sh が /usr/local/etc/bash_completion.d/ にインストールされる。その場合は設定を .bash_profile に追加するだけでいい。

Git を Homebrew でインストールしていない場合

Homebrew で Git をインストールしていない場合は手動で git-prompt.sh を /usr/local/etc/bash_completion.d/ にインストールする必要がある。下記のコマンドで git-prompt.sh をダウンロードしてくることで Apple Git でも Bash のプロンプトに Git のブランチ名を表示することができる。

$ curl -o "/usr/local/etc/bash_completion.d/git-prompt.sh" https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh

.bash_profile で設定する

あとは下記のように .bash_profile を設定する。

$ cat <<EOF >> ~/.bash_profile
> if type __git_ps1 > /dev/null 2>&1 ; then
>	PROMPT_COMMAND="__git_ps1 '\h:\W \u' '\\\$ '; $PROMPT_COMMAND"
>	GIT_PS1_SHOWDIRTYSTATE=true
>	GIT_PS1_SHOWSTASHSTATE=true
>	GIT_PS1_SHOWUNTRACKEDFILES=true
>	GIT_PS1_SHOWUPSTREAM="auto"
>	GIT_PS1_SHOWCOLORHINTS=true
> fi
> EOF

PROMPT_COMMAND は OS X 標準の PS1 設定における $ 記号の直前に Git のブランチ名を表示するように設定している。好みの表示になるように PROMPT_COMMAND は適宜変更してほしい。なお各設定項目の概要は下記のとおり。

  • ファイル変更の有無 (GIT_PS1_SHOWDIRTYSTATE)
  • スタッシュの有無 (GIT_PS1_SHOWSTASHSTATE)
  • 新規ファイルの有無 (GIT_PS1_SHOWUNTRACKEDFILES)
  • HEAD とそのアップストリームの違い (GIT_PS1_SHOWUPSTREAM)
  • 表示内容のカラー化 (GIT_PS1_SHOWCOLORHINTS)

参考文献

19
13
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
19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?