アルパカログ

Webエンジニアでマネージャーな人がプログラミングやマネジメントの話題を中心に書いているブログです。

Git git-completionでコマンドやブランチ名を補完する方法(zsh)

f:id:otoyo0122:20200908090846p:plain:w300

Gitコマンドは普段何度もタイプするので、効率アップのために補完を使うのがおすすめです。

Gitコマンドを補完するために「git-completion」というスクリプトが公開されています。

git-completionを使うと、branchcheckoutといったサブコマンドや、ブランチ名をタブキーで素早く補完することができます。

f:id:otoyo0122:20200905105620g:plain:w300

このエントリでは、zshでGitのサブコマンドやブランチ名を補完するgit-completionの設定方法を紹介します。

なお、Mac Catalina(10.15)以降ではデフォルトでログインシェルがzshになっているようです。

git-completionの設定方法

最初に、補完スクリプトを配置するディレクトリを作成します。

% mkdir ~/.zsh/completion
% cd ~/.zsh/completion

下記からgit-completion.bashgit-completion.zshをダウンロードし、~/.zsh/completionディレクトリに配置します。

git-completion.zsh_gitにリネームします。

% curl -O https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
% curl -O https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh
% mv git-completion.zsh _git

~/.zshrcに補完を有効にする設定を追記します。

# git-completion
fpath=(~/.zsh/completion $fpath)
autoload -U compinit
compinit -u

ターミナルを閉じて開き直すと補完が有効になります。

git-prompt.shで現在のブランチ名を表示する

ついでに、プロンプトに現在のブランチ名も表示しておくと便利です。

こんな感じ。

[ops (master)]% 

現在のブランチ名を表示するにはgit-prompt.shをダウンロードして読み込みます。

% cd ~/.zsh
% curl -O https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh

.zshrcに下記を追記します。%%のところは\$などお好みで変更してください。

# git-prompt
source ~/.zsh/git-prompt.sh
setopt PROMPT_SUBST
PS1='[%n@%m %c$(__git_ps1 " (%s)")]%% '

ターミナルを閉じて開き直すなどして.zshrcを読み込むと、Gitリポジトリでブランチ名の表示が有効になります。

以上です。

このエントリでは、zshでGitのサブコマンドやブランチ名を補完するgit-completionの設定方法を紹介しました。

参考になった方は、ぜひ「はてブ」やSNSでシェアしていただけると嬉しいです。