-
1. 使い始める
- 1.1 バージョン管理に関して
- 1.2 Git略史
- 1.3 Gitの基本
- 1.4 Gitのインストール
- 1.5 最初のGitの構成
- 1.6 ヘルプを見る
- 1.7 まとめ
-
2. Git の基本
- 2.1 Git リポジトリの取得
- 2.2 変更内容のリポジトリへの記録
- 2.3 コミット履歴の閲覧
- 2.4 作業のやり直し
- 2.5 リモートでの作業
- 2.6 タグ
- 2.7 ヒントと裏技
- 2.8 まとめ
-
3. Git のブランチ機能
- 3.1 ブランチとは
- 3.2 ブランチとマージの基本
- 3.3 ブランチの管理
- 3.4 ブランチでの作業の流れ
- 3.5 リモートブランチ
- 3.6 リベース
- 3.7 まとめ
-
4. Git サーバー
- 4.1 プロトコル
- 4.2 サーバー用の Git の取得
- 4.3 SSH 公開鍵の作成
- 4.4 サーバーのセットアップ
- 4.5 一般公開
- 4.6 GitWeb
- 4.7 Gitosis
- 4.8 Gitolite
- 4.9 Git デーモン
- 4.10 Git のホスティング
- 4.11 まとめ
-
5. Git での分散作業
- 5.1 分散作業の流れ
- 5.2 プロジェクトへの貢献
- 5.3 プロジェクトの運営
- 5.4 まとめ
-
6. Git のさまざまなツール
- 6.1 リビジョンの選択
- 6.2 対話的なステージング
- 6.3 作業を隠す
- 6.4 歴史の書き換え
- 6.5 Git によるデバッグ
- 6.6 サブモジュール
- 6.7 サブツリーマージ
- 6.8 まとめ
-
7. Git のカスタマイズ
- 7.1 Git の設定
- 7.2 Git の属性
- 7.3 Git フック
- 7.4 Git ポリシーの実施例
- 7.5 まとめ
-
8. Gitとその他のシステムの連携
- 8.1 Git と Subversion
- 8.2 Git への移行
- 8.3 まとめ
-
9. Gitの内側
- 9.1 配管(Plumbing)と磁器(Porcelain)
- 9.2 Gitオブジェクト
- 9.3 Gitの参照
- 9.4 パックファイル
- 9.5 参照仕様(Refspec)
- 9.6 トランスファープロトコル
- 9.7 メインテナンスとデータリカバリ
- 9.8 要約
2.7 Git の基本 - ヒントと裏技
ヒントと裏技
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'