ヒントと裏技
Git の基本を説明した本章を終える前に、ほんの少しだけヒントと裏技を披露しましょう。これを知っておけば、Git をよりシンプルかつお手軽に使えるようになり、Git になじみやすくなることでしょう。ほとんどの人はこれらのことを知らずに Git を使っています。別にどうでもいいことですし本書の後半でこれらの技を使うわけでもないのですが、その方法ぐらいは知っておいたほうがよいでしょう。
自動補完
Bash シェルを使っているのなら、Git にはよくできた自動補完スクリプトが付属しています。Git のソースコードをダウンロードし、contrib/completion
ディレクトリを見てみましょう。git-completion.bash
というファイルがあるはずです。このファイルをホームディレクトリにコピーし、それを .bashrc
ファイルに追加しましょう。
source ~/.git-completion.bash
すべてのユーザーに対して Git 用の Bash シェル補完を使わせたい場合は、Mac なら /opt/local/etc/bash_completion.d
ディレクトリ、Linux 系なら /etc/bash_completion.d/
ディレクトリにこのスクリプトをコピーします。Bash は、これらのディレクトリにあるスクリプトを自動的に読み込んでシェル補完を行います。
Windows で Git Bash を使用している人は、msysGit で Windows 版 Git をインストールした際にデフォルトでこの機能が有効になっています。
Git コマンドの入力中にタブキーを押せば、補完候補があらわれて選択できるようになります。
$ git co<tab><tab>
commit config
ここでは、git co
と打ち込んだ後にタブキーを二度押してみました。すると commit と config という候補があらわれました。さらに m<tab>
と入力すると、自動的に git commit
と補完されます。
これは、コマンドのオプションに対しても機能します。おそらくこっちのほうがより有用でしょう。たとえば、git log
を実行しようとしてそのオプションを思い出せなかった場合、タブキーを押せばどんなオプションを使えるのかがわかります。
$ git log --s<tab>
--shortstat --since= --src-prefix= --stat --summary
この裏技を使えば、ドキュメントを調べる時間を節約できることでしょう。
Git エイリアス
Git は、コマンドの一部だけが入力された状態でそのコマンドを推測することはありません。Git の各コマンドをいちいち全部入力するのがいやなら、git config
でコマンドのエイリアスを設定することができます。たとえばこんなふうに設定すると便利かもしれません。
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
こうすると、たとえば git commit
と同じことが単に git ci
と入力するだけでできるようになります。Git を使い続けるにつれて、よく使うコマンドがさらに増えてくることでしょう。そんな場合は、きにせずどんどん新しいエイリアスを作りましょう。
このテクニックは、「こんなことできたらいいな」というコマンドを作る際にも便利です。たとえば、ステージを解除するときにどうしたらいいかいつも迷うという人なら、こんなふうに自分で unstage エイリアスを追加してしまえばいいのです。
$ git config --global alias.unstage 'reset HEAD --'
こうすれば、次のふたつのコマンドが同じ意味となります。
$ git unstage fileA
$ git reset HEAD fileA
少しはわかりやすくなりましたね。あるいは、こんなふうに last
コマンドを追加することもできます。
$ git config --global alias.last 'log -1 HEAD'
こうすれば、直近のコミットの情報を見ることができます。
$ git last
commit 66938dae3329c7aebe598c2246a8e6af90d04646
Author: Josh Goebel <dreamer3@example.com>
Date: Tue Aug 26 19:48:51 2008 +0800
test for current head
Signed-off-by: Scott Chacon <schacon@example.com>
Git が単に新しいコマンドをエイリアスで置き換えていることがわかります。しかし、時には Git のサブコマンドではなく外部コマンドを実行したくなることもあるでしょう。そんな場合は、コマンドの先頭に !
をつけます。これは、Git リポジトリ上で動作する自作のツールを書くときに便利です。例として、git visual
で gitk
が起動するようにしてみましょう。
$ git config --global alias.visual '!gitk'