履歴の探索

$ gitk                      # 履歴を視覚的にブラウズする
$ git log                   # すべてのコミットを一覧表示する
$ git log src/              # src/ 配下のファイルを変更している・・・
$ git log v2.6.15..v2.6.16  # v2.6.16 には含まれているが、v2.6.15 には含まれていない・・・
$ git log master..test      # test ブランチに含まれているが、master ブランチには含まれていない・・・
$ git log test..master      # master ブランチに含まれているが、test ブランチには含まれていない・・・
$ git log test...master     # 片方のブランチには含まれているが、両方のブランチには含まれていない・・・
$ git log -S'foo()'         # 差分に "foo()" を含んでいる・・・
$ git log --since="2 weeks ago"
$ git log -p                # パッチも表示する
$ git show                  # 最新のコミットを表示
$ git diff v2.6.15..v2.6.16 # 2つのタグ付されたバージョン間の差分
$ git diff v2.6.15..HEAD    # 現在の head との差分
$ git grep "foo()"          # 作業ディレクトリ内で "foo()" を検索する
$ git grep v2.6.15 "foo()"  # 過去のツリー内で "foo()" を検索する
$ git show v2.6.15:a.txt    # a.txt の過去のバージョンを表示する

回帰点を探す:

$ git bisect start
$ git bisect bad                # 現在のバージョンは bad
$ git bisect good v2.6.13-rc2   # 最新の good なリビジョンを知らせる
Bisecting: 675 revisions left to test after this
                                # ここからテストを行う
$ git bisect good               # このリビジョンが good の場合
$ git bisect bad                # このリビジョンが bad の場合
                                # 回帰点を見つけるまで続ける