LoginSignup
30
25

More than 5 years have passed since last update.

gitコマンドやブランチ名の入力時補完を出来るようにする

Last updated at Posted at 2018-09-17

はじめに

gitコマンドやブランチ名の補完が出来たら便利じゃないか、と思っていたところ
git-completionを使うと実現出来ると知ったので、導入方法をまとめておく。
正直Git使うなら使わない手はない。

公式はこちら。
https://github.com/git/git/tree/master/contrib/completion
(zsh, tcshにも対応している。)

前提

  • bash
  • Git 2.18以降1
  • OS: Mac, Debian, CentOSなど

手順

以下の3ステップで完了です。
1. git-completion.bashを取得する
2. git-completion.bashを.bashrcで読み込むように書き加える
3. .bashrcの設定を反映する

以下は導入の一例。

$ curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
$ echo "source ~/.git-completion.bash" >> ~/.bashrc
$ source ~/.bashrc

使い方

gitコマンドやブランチ名を打ちかけているところでタブキーを叩きます。
git cheとタイプしてタブキーを叩くとgit checkout,git cherry,git cherry-pickが補完候補として表示され、git checとタイプしてタブキーを叩くとgit checkoutが補完されます。
シェルによるコマンドやファイル名の補完と一緒ですね。

ここで以下のようなエラーが出る人は、Gitのバージョンが古い(git-completion.bashの記述に対応していない)可能性があります。
Gitのバージョンを2.18以上にすると解消するかと。

bash
$git checko #ここまで打ちかけてタブキーを叩いて以下のようなエラーが出る場合
Unknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config

(筆者はDebianでも使おうとしたところ、aptでGitのv2.11がインストールされていたのでこのエラーに出会いました。)

おわりに

筆者は普段はMacでTerminalにてbashを使う事が多いが、DebianやCentOSでも勿論git-completionは使える。
yumaptでインストール出来るGitのバージョンはやや古いので、留意すべし。
よく使うコマンドはエイリアスを使い、トピックブランチの入力補完は本機能を使う、のがよくある手だろうか?


  1. 投稿時点(2018/9/17)では、git v2.18から加わった--list-cmds に対応している事が必要なようです。https://apple.stackexchange.com/questions/327817/git-completion-bash-producing-error-on-macos-sierra-10-12-6 

30
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
25