のーずいだんぷ

主に自分用メモですが、もしかしたら誰かの役に立つかもしれません

gitの補完が効かなくなったとき(mac)

はじめに

gitの補完を以前に設定していて、ある日急に使えなくなることがある。

使えなくなるケースとしては主に

  • gitのバージョンアップ
  • MacOSのバージョンアップ

のいずれかが原因であり、実態は補完用スクリプトのシンボリックリンクが切れたりしていることが実際に補完が効かなくなっている原因である。

今回自分はCatalinaにアップグレード後に補完が効かなくなった。

解決策

そもそも補完のためには次のように.bashrcへ設定しているはずである。

#~/.bashrc
source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash

上記の2ファイルはシンボリックリンクで、実態は次の2ファイルを参照している。

/usr/local/Cellar/git/<version>/etc/bash_completion.d/git-completion.bash
/usr/local/Cellar/git/<version>/etc/bash_completion.d/git-prompt.sh

なのでまずは上記の実態が正しく存在しているかを確認する。おそらくであるが、実態がなくなっているかシンボリックリンクのリンク先が古いgitバージョンのままになっているので以下のような感じで更新すればいい。

$ ln -nfs /usr/local/Cellar/git/2.25.0_1/etc/bash_completion.d/git-prompt.sh /usr/local/etc/bash_completion.d/git-prompt.sh
$ ln -nfs /usr/local/Cellar/git/2.25.0_1/etc/bash_completion.d/git-completion.bash /usr/local/etc/bash_completion.d/git-completion.bash 

これで再度.bashrcを起動すればうまく動くはずである。