Webエンジニア

【macOS High Sierra 以前】Macのターミナル画面にブランチ名を表示させるようにする

「今なんのブランチで作業しているんだっけ?」

こんな事ってよくありますよね。

 

ターミナルでブランチ名を自動的に表示できれば便利だと思ったのでやってみました。

同時進行でターミナルでの入力補完もやってます。

 

完成形はこんな感じです。

Before

After

ブランチ名(master)の表示と、色付けをしています。

スポンサーリンク

作業環境

OS: macOS High Sierra

ログインシェル: bash


MacOS が 「Catalina以降」の場合はデフォルトのシェルがzshなりました。
別で記事を作ったので、こちらからどうぞ

【Intel Mac】Macのターミナル画面にGitブランチ名を表示させるようにする
何もしなければMacのターミナル画面を起動するとこんな感じです。 今回は、このターミナルの画面に「現在のGitのブランチ名」を表示させるようにします。 こんな感...

作業内容

HomebrewでGitインストール

まずはGitをインストールします。

既にインストールしている方は飛ばしてください。

 

Homebrewで入れたほうが都合がいいので下記コマンドでインストールします。

$ brew install git

 

which gitでHomebrewで入れたGitが使えるようになっているか確認します。

$ which git
/usr/local/bin/git ←これでOK

ターミナルで入力補完

lsコマンドで「git-prompt.sh」「git-completion.bash」の存在を確認しておく。

$ ls /usr/local/etc/bash_completion.d/

 

下記のようになればOKです。

 

Homebrewで「Git」を入れた場合、

上記ディレクトリにシンボリックリンクが貼られるので前述した2つのファイル

(git-prompt.sh、git-completion.bash)が存在する。

 

bashrcに記述を追記する

「入力補完」と「ブランチ名」表示のための記述「4行」を追記する。

 

ここでgit-prompt.shを読み込む記述をしないと
__git_ps1: command not foundというエラーを吐かれる。そのため以下を追記。

$ vi ~/.bashrc

// 以下vimエディタにてペースト
source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\n\$ '

vimエディタは:wq!でセーブして保存。

 

 

~/.bashrcを読み込む設定をしていない場合は、下記の1行追加で読み込みの設定をする

$ vi ~/.bash_profile

source ~/.bashrc

 

さいご

ターミナルを再起動して表示と入力補完の確認をする。

 

正しく設定が出来ていればこんな風になってるはずです。

 

 

 

 

表示が気に食わなかった場合、以下を参考にしたりして調整するもよし。

プロンプトをカスタマイズしてgitブランチを表示する / Qiita(@caad1229)

 

おわり

【Intel Mac】Macのターミナル画面にGitブランチ名を表示させるようにする
何もしなければMacのターミナル画面を起動するとこんな感じです。 今回は、このターミナルの画面に「現在のGitのブランチ名」を表示させるようにします。 こんな感...

参考記事

MacのGitで補完を効かせたりブランチ名を表示する設定(Homebrewでgitをインストールした場合) / Qiita(@koyopro)

bashでgitのブランチ名を表示 / Qiita(@tanishi)

Yet Another .bash_profile vs .bashrc + .profile 備忘録 / Qiita(@Yuki-Inoue)

OS X で Homebrew を使って git の最新バージョンを入れようとしてうまくいかなかったときの対応 / Colorless Green Webs

コメント

タイトルとURLをコピーしました