はじめに
Gitを活用している方々にとって、現在作業中のブランチを常に把握することは重要なタスクの一つです。それが大規模なプロジェクトだと、特にその重要性は高まります。
今回は、macOSでZshシェルを使用している方向けに、余計な外部モジュールを組み込まずにプロンプトにGitブランチ名を表示する方法を紹介します。
.zshrcスクリプト
実際に私が使っている.zshrcスクリプトを示します。
parse_git_branch() {
BRANCH=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
if [ -n "$BRANCH" ]; then
echo " ($BRANCH)"
else
echo ""
fi
}
precmd() {
PROMPT="%F{green}%n@%m %F{cyan}%1~%F{yellow}$(parse_git_branch) %F{magenta}$%f "
}
このスクリプトを .zshrc
ファイルに追加するだけで、ターミナルのプロンプトに現在のGitブランチ名を表示することができます。
では、このスクリプトがどのように動作するのか、一つずつ見ていきましょう。
parse_git_branch 関数
この関数は、現在のGitブランチ名を検出し、表示する役割を果たします。以下のコマンドを使ってブランチ名を取得します。
BRANCH=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
このコマンドは git branch
を実行し、出力を sed
コマンドにパイプします。sed
コマンドは出力の中から現在のブランチ(*
マークが付いている行)を探し、そのブランチ名だけを抽出します。
次に、ブランチが存在すればその名前を、存在しなければ空文字列を出力します。
if [ -n "$BRANCH" ]; then
echo " ($BRANCH)"
else
echo ""
fi
PROMPT 変数
PROMPT
変数は、プロンプトの見た目を定義します。色やテキストの表示形式をカスタマイズすることが可能です。
ここでは %F{green}%n@%m %F{cyan}%1~%F{yellow}$(parse_git_branch) %F{magenta}$%f
を設定しています。
これにより、以下の情報が表示されます:
%F{green}%n@%m
: ユーザ名とマシン名(緑色)%F{cyan}%1~
: 現在のディレクトリ(シアン色)%F{yellow}$(parse_git_branch)
: 現在のgitブランチ名(黄色)%F{magenta}$%f
: プロンプト記号$
(マゼンタ色)
なお、ブランチを切り替えたときにプロンプトを更新するために、ZSHの特殊関数である precmd
関数を利用します。precmd
関数は各プロンプトの前に実行されるため、parse_git_branch
関数が再度呼び出され、プロンプト内のブランチが更新されます。
以上が、ZshプロンプトにGitブランチ名を表示する方法です。これにより、作業中のブランチを一目で確認することが可能になります。毎日の作業効率を上げるためにぜひ活用してみてください。
コメント