コミット履歴を確認するときは「git log」を使います。
以下から Gitコマンド「git log」の使い方を解説していきます。
「git log」コマンドの基本
「git log」は、リポジトリの中に記録してあるコミット履歴(プログラムの変更履歴)を確認することができます。
そして、ひとつひとつのコミットを丸で表すと、コミット履歴は以下のように時系列に記録されています。そして、コミットひとつひとつには、プログラムを変更した内容や日時、変更者の名前が保存されています。git log コマンドを使うと、これらの項目を確認することができます。
コマンドは、以下のように そのまま実行するのが基本です。
git log
実行結果は 以下のようになります。
コミットした人の名前、日付、コミットメッセージを確認できます。一番上が最新のコミットで、下にいくほど古いコミットが表示されます。
コミット履歴を確認する
それでは実際に、コマンドを使ってコミット履歴を確認してみましょう。
あらかじめリポジトリを作成してある状態から始めます。まだ作成されてない場合は以下のコマンドを参考にしてみてください。
mkdir git-log-practice
cd git-log-practice
git init
リポジトリの作成について詳しくはこちら。
次に以下のコマンドで「file1.txt」を作成し、コミットします。
touch file1.txt
git add file1.txt
git commit -m 'file1.txt を追加'
さらに以下のコマンドで「file2.txt」を作成し、コミットします。
touch file2.txt
git add file2.txt
git commit -m 'file2.txt を追加'
これで git log を実行してみましょう。
git log
すると、以下のように2つのコミット内容が確認できました。
表示するコミット数を指定する
-n
オプションをつけると、表示するコミット数を指定することができます。
例えば以下のように実行してみましょう。
git log -n 1
すると、最新の1件のコミットが表示されました。
同様に、以下のようにすると最新の100件を表示することができます。
git log -n 100
変更したプログラムの内容を確認する
-p
オプションをつけると、変更したプログラムの内容を確認することができます。
コマンドの動作を確認するための準備として、まずは「file1.txt」の内容を以下のように何行か追加して保存してみましょう。
そして以下のコマンドで編集内容をコミットします。
git add file1.txt
git commit -m 'file1.txt を編集'
続いて「file1.txt」の内容を1行 削除してみます。今回は2行目の「bbb」を削除しました。
これで以下のコマンドで編集内容をコミットします。
git add file1.txt
git commit -m 'file1.txt の内容を1行削除'
それでは ここまでで変更したプログラムの内容を確認してみましょう。以下のようにコマンドを実行します。
git log -p
するとコミット履歴の中に、変更した内容も表示されるようになりました。
左側に +
が表示されているところは追加した行、-
が表示されているところは削除した行を表します。
上の画像のように、一番下のカーソルの手前に :
が表示されているときは、キーボードを使って上下にスクロールできます。
q
を押すと終了します。
指定したファイルのコミット履歴を確認する
以下のようにファイルを指定すると、そのファイルのコミット履歴を確認することもできます。
git log ファイル
以下は「file1.txt」のコミット履歴を確認するコマンドです。
git log file1.txt
ここまでが「git log」コマンドの基本!
「git log」コマンドのオプション
「git log」コマンドの理解をさらに深めたい方は以下もご覧ください。
--author
オプションをつけると、コミットした人の名前に指定した文字列を含むコミット履歴を表示することができます。
コミットした人の名前に「yama」を含むコミット履歴を表示する例
git log --author=yama
–graph オプション
--graph
オプションをつけると、ブランチやマージの履歴をアスキーグラフで表示することができます。
コマンド例
git log --graph
–grep オプション
--grep
オプションをつけると、コミットメッセージに指定した文字列を含むコミット履歴を表示することができます。
コミットメッセージに「file1」を含むコミット履歴を表示する例
git log --grep='file1'
–merges オプション
--merges
オプションをつけると、マージコミットのみを表示することができます。
-n オプション
-n
オプションをつけると、表示するコミット数を指定することができます。
最新10件のコミットを表示する例
git log -n 10
–name-status オプション
--name-status
オプションをつけると、変更したファイルを表示することができます。
コマンド例
git log --name-status
実行結果例
–no-merges オプション
--no-merges
オプションをつけると、マージコミットを除いてコミット履歴を表示することができます。
–numstat オプション
--numstat
オプションをつけると、ファイルごとの追加行数と削除行数を表示することができます。
コマンド例
git log --numstat
実行結果例
–oneline オプション
--oneline
オプションをつけると、各コミットを1行で出力することができます。
コマンド例
git log --oneline
実行結果例
–since, –after オプション
--since
や --after
オプションをつけると、指定した日時以降のコミット履歴を表示することができます。
3日前以降のコミット履歴を表示する例
git log --since="3 days ago"
2週間前以降のコミット履歴を表示する例
git log --since=2.weeks
2020年1月1日 00:30 以降のコミット履歴を表示する例
git log --since="2020-01-01 00:30:00"
指定した日時以前のコミット履歴を表示する --until
オプションもあります。
–stat オプション
–stat オプションをつけると、コミットごとにファイルの統計情報を表示することができます。
コマンド例
git log --stat
実行結果例
–until, –before オプション
--until
や --before
オプションをつけると、指定した日時以前のコミット履歴を表示することができます。
3日前以前のコミット履歴を表示する例
git log --until="3 days ago"
2週間前以前のコミット履歴を表示する例
git log --until=2.weeks
2020年1月1日 00:30 以前のコミット履歴を表示する例
git log --until="2020-01-01 00:30:00"
指定した日時以降のコミット履歴を表示する --since
オプションもあります。
まとめ
以上、「git log」の使い方でした!
ここまでの内容をまとめておきます。
git log
で、リポジトリの中に記録してあるコミット履歴(プログラムの変更履歴)を確認することができる。-n
オプションをつけると、表示するコミット数を指定することができる。-p
オプションをつけると、変更したプログラムの内容を確認することができる。git log ファイル
で、そのファイルのコミット履歴を確認することができる。