zshでgitのブランチ名を表示させ、gitの補完をする方法

Git Git Hub
スポンサーリンク

今回はgitでソースコードを管理するときに便利なTipsを紹介していきます。具体的にはターミナル上でgitのブランチ名を表示させる方法と、ターミナル上でgitのコマンドを保管できるようにする方法を解説します。

今回のブログはこんな人におすすめ
  • gitを快適に使用したい
  • ターミナル上でgitのブランチ名を表示させたい
  • ターミナル上でgitコマンドを補完できるようにしたい

スポンサーリンク

環境

ターミナルはiTerm2を使用しています。

gitはHomebrewを使用してインストールしたものを使用しています。

シェルはzshを使用しています。

macOS BigSur version11.0.1です。

この記事を見てできるようになること

ターミナル上でgitのブランチ名を確認することができるようになる。

ターミナル上でgitコマンドを保管できるようになる。

設定ファイルの確認

Homebrewでgitをインストールしている場合には、以下のように2つのgit用補完定義ファイルがインストールされているので、これを利用します。

そもそも、Homebrew経由でgitをインストールしていない場合は下記の記事を参考にして、インストールしてください。

【MacOS】Homebrew経由でGitをインストールする方法 – 独学プログラマ

↓のコマンドを入力して、_git git-completion.bashが表示されていることを確認する。

$ ls -l `brew --prefix`/share/zsh/site-functions/

自分の場合は、↓のように出ました。4行目と6行目に _gitgit-completion.bash が表示されているのがわかると思います。

$ ls -l `brew --prefix`/share/zsh/site-functions/
total 0
lrwxr-xr-x  1 uirikuto  admin  39 10 11 06:46 _brew -> ../../../Homebrew/completions/zsh/_brew
lrwxr-xr-x  1 uirikuto  admin  56 11  8 02:44 _git -> ../../../Cellar/git/2.29.2/share/zsh/site-functions/_git
lrwxr-xr-x  1 uirikuto  admin  65 12 10 21:18 _nodebrew -> ../../../Cellar/nodebrew/1.0.1/share/zsh/site-functions/_nodebrew
lrwxr-xr-x  1 uirikuto  admin  71 11  8 02:44 git-completion.bash -> ../../../Cellar/git/2.29.2/share/zsh/site-functions/git-completion.bash

表示されていない場合は↓のコマンドを入力してください。

$ brew link git
$ brew link --overwrite git

zcompdump のリビルド

設定の追加

次に設定の追加です。実際にファイルに設定を追加しています。

.zshrcファイルを開く

ターミナル上で↓コマンドを入力(vscodeで開く場合)

code ~/.zshrc

ターミナル上で↓コマンドを入力(vimで開く場合)

vi /.zshrc

ファイルの中身を記述

ファイルの中身は僕が実際に書いたファイルを公開します。これをコピペしていただければ、ターミナル上でgitブランチを表示できることと、gitコマンドの補完ができるようになると思います。

# HomebrewのGitを使うパス
export PATH=/usr/local/bin/git:$PATH
# Git

# brew の場合
fpath=($(brew --prefix)/share/zsh/site-functions $fpath)

# 補完機能有効にする
autoload -U compinit
compinit -u
 
# 補完候補に色つける
autoload -U colors
colors
zstyle ':completion:*' list-colors "${LS_COLORS}"
 
# 単語の入力途中でもTab補完を有効化
setopt complete_in_word
# 補完候補をハイライト
zstyle ':completion:*:default' menu select=1
# キャッシュの利用による補完の高速化
zstyle ':completion::complete:*' use-cache true
# 大文字、小文字を区別せず補完する
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
# 補完リストの表示間隔を狭くする
setopt list_packed
 
# コマンドの打ち間違いを指摘してくれる
setopt correct
SPROMPT="correct: $RED%R$DEFAULT -> $GREEN%r$DEFAULT ? [Yes/No/Abort/Edit] => "

#ブランチ名を表示する
fpath=(~/.zsh $fpath)
if [ -f ${HOME}/.zsh/git-completion.zsh ]; then
       zstyle ':completion:*:*:git:*' script ~/.zsh/git-completion.zsh
fi
if [ -f ${HOME}/.zsh/git-prompt.sh ]; then
       source ${HOME}/.zsh/git-prompt.sh
fi
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWUNTRACKEDFILES=true
GIT_PS1_SHOWSTASHSTATE=true
GIT_PS1_SHOWUPSTREAM=auto
setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '

まとめ

今回はgitを使用した開発環境を整えるために2つの設定を行いました。具体的には、「ターミナル上でgitのブランチ名を表示させること」と「ターミナル上でgitのコマンドを保管できるようにすること」です。

この2つの設定をすることで快適なgitライフを送ることができるようになると思います。気になった方は是非実践してみてください。

コメント

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