gitのブランチ名をターミナルで表示できるようにする


以前、デザイナー向けターミナル色変更の記事を書いた。
Macのターミナル(bash)を最低限色付けする

上記の記事に地味にいいねを付けていただけるので需要あるのかもと思い、
続きのgitのブランチ名表示の設定もできるようにしてみる。

なにも設定していなくても作業できてしまうけど、さすがにブランチ名くらいは出ていないと作業に支障出ることもあるのでは?
ということで今回も10分くらい(インストールとかに時間取られるのでもう少しかかるかも)でできるgitのブランチ表示のための設定をしていきます。

設定するとできるようになること

  • ブランチ名の表示
Before
After

はじめに

Macのターミナル(bash)を最低限色付けする
が完了している前提で進めます。

次にエンジニアでない人に限らず、使われていないターミナルはbrewが最新状態になっていないことが多いので、とりあえず下記コマンドでアップデートを済ませます。

$ brew update

※アップデート時にエラーが出るケースがある。(エンジニアに助けてもらおう!自分で解決しようとしてもなかなか大変なので。)
MacOS High SierraでHomebrewの更新(brew update)ができない場合の対処

gitを設定していく

gitのインストール


$ brew install git

下記のコマンドを打って、同じ結果が返ってくるか確認する

$ which git
/usr/local/bin/git

ファイルの存在を確認する

$ ls /usr/local/etc/bash_completion.d/
brew            git-completion.bash git-prompt.sh

git-completion.bashgit-prompt.sh のファイルがあることを確認する。

bashrcに記述を追記する

$ vi ~/.bashrc

i を押してから、gitの設定を追加する。

~/.bashrc
# gitの設定(下記3行を.bashrcの一番上に追加する)
source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true

続いて、前回の記事で追加済みの下記の PS1= の行を修正する。後ろのほうに $(__git_ps1)\[\033[00m\] を追加するのですが、 PS1= の行をまるごと置き換えちゃうのがミスも起きなくてよいと思います。(表示のための数字指定も地味に変更しているので...)

~/.bashrc

# 変更後

# default:cyan / root:red
if [ $UID -eq 0 ]; then
    PS1='\[\033[31m\]\u@\h\[\033[00m\]:\[\033[01m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\\$ '
else
    PS1='\[\033[36m\]\u@\h\[\033[00m\]:\[\033[01m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\\$ '
fi

( 豆知識: esc を押してから、 任意の行で dd とキーボードを押すと行単位で一行まるごと消せます。)

キーボードの esc ボタンを押してから :wq と入力してファイルを閉じる.

設定を反映する

$ source ~/.bashrc

こんな感じで表示されるようになりました!!

適当なレポジトリをcloneしてきて動作確認する

$ mkdir dev
$ cd dev

$ git clone https://github.com/as/a.git
Cloning into 'a'...
remote: Enumerating objects: 22, done.
remote: Counting objects: 100% (22/22), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 1470 (delta 6), reused 18 (delta 5), pack-reused 1448
Receiving objects: 100% (1470/1470), 1.65 MiB | 222.00 KiB/s, done.
Resolving deltas: 100% (910/910), done.

$ cd a/

pc名@ユーザー名:~/dev/a (master)$ git checkout -b new-branch
Switched to a new branch 'new-branch'
pc名@ユーザー名:~/dev/a (new-branch)$ 

終わりです。bashでコマンドの履歴表示とかできるのかな?
もし気が向いたら書きます。

参考:
Macのターミナル画面にブランチ名を表示させるようにする