SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

gitのaliasをすると補完が効かない問題を解決


gitをbash上でコマンドを高速に叩こうという記事です。

gitのコマンドにalias(コマンドを置き換えること)をかけるには2通ります。
- gitのconfigで設定する方法
- bashの.bashrcなどのファイルでaliasをかける方法

陥りがちな問題

あるあるかと思うのですが.bashrcでaliasを以下のようにかけます。
alias gc='git checkout'
で、
gcと打って

TAB!!!!

あんど

TABTABTABTABATBATBATABABTTBAAABTBTABTATTA!!!!

と、タブ補完のために連打しても、連打しても補完が効きません。
こんな状態な自分がいました。

解決策

これはコマンドをgcで固定してしまっているために次の引数部分がうまく認識されていないのだと思います。

そのため、 git checktoutを、それぞれgitのaliasとcheckoutのaliasを分割するとうまく補完させることができます。

まずはgitをaliasかけます。
こちらは.bashrcに、alias g='git'でOKです。

checkoutのaliasはgit自体のaliasとします。
git config alias.co checkoutのように書きます。

ちなみにglobalな設定にする場合は
git config --global alias.st statusというオプションをつけます。

マシンに適用する場合はこちら。
git config --system alias.st status

リポジトリ単位だと、
git config alias.st statusでOKです。

以上の設定で補完が!

以上の設定をしておくと、
g coと打てば、あとは補完が効くようになっています。

参考

公式でもこのように言及されています。

Git - Git の設定

gitで便利なエイリアス達 - Qiita