git logコマンドの使い方!今までのコミット履歴を表示する

git Git

git logコマンドの使い方について書いています。
最初にgit logコマンドついての説明を書いています。
その後に、コマンドの使い方とコマンドオプションを指定したときの動作について解説しています。

git logコマンドでGitの履歴を見ることは可能ですが、GUIツールが使える場合には、GUIのツールを使った方が見やすいかと思います。
VSCodeやSourceTreeなどを使うことも検討してみてください。

git logコマンドとは?

git logコマンドを使うことで、Gitでコミットした履歴を確認することができます。
リポジトリに対してコミットしてきた、今までの履歴を表示してくれます。

次項から実際の動作を確認していきましょう。

git logコマンドの使い方

git logコマンドを使うには、コミット履歴を確認したいリポジトリ配下で、下記のコマンドを実行します。

$ git log

そうすると、下記のようにコミット履歴が表示されます。
上の方が最新のコミットです。最新のコミットから順番に表示されます。

$ git log
commit f38888215ae646456aae6d00aa02d29375c1967b (HEAD -> main, origin/main, origin/HEAD)
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:47:19 2022 +0900

    add log

commit 4eb19707015353eaa81a5faa1e34d00fca75e5c5
Merge: 448c7c5 9a5bd36
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:25:28 2022 +0900

    Merge branch 'main' of https://github.com/yasuaki0206/test-repository

commit 448c7c501c6c04b67fc0f6010f3c1cf6da3ed0c3
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:19:55 2022 +0900

    update testhoge

たくさんログが表示された場合には、git logを実行した状態でターミナルが待機します。
エンターを押して進めていくことが可能です。

q」を入力すると、途中で抜けることが可能です。

表示するログ数の制限

-n」オプションを使うと、表示するログの数を制限することができます。

$ git log -n 5

上記のようにコマンドを実行すると、コミット履歴が5個だけ表示されます。

変更追加したファイルを表示する

変更・追加したファイルを表示するには「--name-status」オプションを使います。
下記のようにコマンドを実行します。

$ git log --name-status

そうすると、変更や追加したファイルが、このように表示されます。

% git log --name-status
commit f38888215ae646456aae6d00aa02d29375c1967b (HEAD -> main, origin/main, origin/HEAD)
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:47:19 2022 +0900

    add log

M       main.js

commit 4eb19707015353eaa81a5faa1e34d00fca75e5c5
Merge: 448c7c5 9a5bd36
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:25:28 2022 +0900

    Merge branch 'main' of https://github.com/yasuaki0206/test-repository

commit 448c7c501c6c04b67fc0f6010f3c1cf6da3ed0c3
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:19:55 2022 +0900

    update testhoge

M       testhoge.js

「M」がついているのが、変更したファイルになります。
上記では、表示されていませんが「A」がついているのが新規追加したファイルになります。
マージコミットには、ファイル情報は特に何も表示されませんでした。

1行で表示する

コミット履歴の内容を、コミット番号とメッセージのみの1行で表示することが可能です。
この場合は「--oneline」オプションを使います。

$ git log --oneline

下記のように左にコミット番号、右にメッセージの形式で表示されます。

$ git log --oneline
f388882 (HEAD -> main, origin/main, origin/HEAD) add log
4eb1970 Merge branch 'main' of https://github.com/yasuaki0206/test-repository
448c7c5 update testhoge
9a5bd36 add test4 console.log

コミットした人を指定する

コミットした人を指定して、コミット履歴を表示させることもできます。
この場合は「--author」オプションを使います。

$ git log --author=xxx@example.com

メールアドレスやユーザー名の一部を指定して、コミット履歴を表示することが可能です。
個人を特定する場合には、上記のようにメールアドレスを指定すると良いかと思います。

マージコミットのみを表示する

マージコミットのみを表示することも可能です。
--merges」を使います。

$ git log --merges

実行すると、下記のようにマージコミットのみが表示されます。

$ git log --merges
commit 4eb19707015353eaa81a5faa1e34d00fca75e5c5
Merge: 448c7c5 9a5bd36
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:25:28 2022 +0900

    Merge branch 'main' of https://github.com/yasuaki0206/test-repository

commit 794e26f52aba51cf1652c37e3e177aa853c86f4b
Merge: fe3416c f9675ed
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:16:32 2022 +0900

    Merge branch 'main' of https://github.com/yasuaki0206/test-repository

マージコミットを表示しない

マージコミットをコミット履歴に含ませないように表示することも可能です。
--no-merges」を使います。

$ git log --no-merges

実行すると、マージコミットが含まれない状態で、コミット履歴が表示されます。

$ git log --no-merges
commit f38888215ae646456aae6d00aa02d29375c1967b (HEAD -> main, origin/main, origin/HEAD)
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:47:19 2022 +0900

    add log

commit 448c7c501c6c04b67fc0f6010f3c1cf6da3ed0c3
Author: yasuaki0206 <xxx@example.com>
Date:   Wed Aug 10 23:19:55 2022 +0900

    update testhoge

グラフを表示する

コミット履歴にグラフをつけて、どのようにコミットがマージされたかなどを可視化してみやすくすることが可能です。
この場合には「--graph」オプションを使います。

$ git log --graph

実行すると、下記のようにコミット履歴の左側にグラフ表示されます。
どこでコミットがマージされたかなど、見た目でわかるので便利です。

$ git log --graph    
* commit f38888215ae646456aae6d00aa02d29375c1967b (HEAD -> main, origin/main, origin/HEAD)
| Author: yasuaki0206 <xxx@example.com>
| Date:   Wed Aug 10 23:47:19 2022 +0900
| 
|     add log
|   
*   commit 4eb19707015353eaa81a5faa1e34d00fca75e5c5
|\  Merge: 448c7c5 9a5bd36
| | Author: yasuaki0206 <xxx@example.com>
| | Date:   Wed Aug 10 23:25:28 2022 +0900
| | 
| |     Merge branch 'main' of https://github.com/yasuaki0206/test-repository
| | 
| * commit 9a5bd369eb2e3b3b228a8db021d55d2a3a62b45a
| | Author: yasuaki <xxx2@example.com>
| | Date:   Wed Aug 10 23:19:32 2022 +0900
| | 
| |     add test4 console.log
| | 
* | commit 448c7c501c6c04b67fc0f6010f3c1cf6da3ed0c3
|/  Author: yasuaki0206 <xxx@example.com>
|   Date:   Wed Aug 10 23:19:55 2022 +0900
|

複数オプションを合わせて実行する

複数のオプションを合わせて、実行することもできます。
git logコマンドの後に、複数のオプションを一緒に付けます。

下記では、1行表示でコミット履歴を7つまで表示して、グラフ表示をつけました。

$ git log --oneline -n 7 --graph

そうすると、下記のように表示されました。
このようにオプションを組み合わせると、いろいろな表示方法でコミット履歴を確認することが可能です。

$ git log --oneline -n 7 --graph
* f388882 (HEAD -> main, origin/main, origin/HEAD) add log
*   4eb1970 Merge branch 'main' of https://github.com/yasuaki0206/test-repository
|\  
| * 9a5bd36 add test4 console.log
* | 448c7c5 update testhoge
|/  
*   794e26f Merge branch 'main' of https://github.com/yasuaki0206/test-repository
|\  
| * f9675ed add test2 log
* | fe3416c add test3 log
|/

git logコマンドのオプションまとめ

最後に、今回紹介したgit logコマンドのオプションを表にまとめました。

オプション 内容
-n コミット履歴の件数を指定できる
--name-status 変更・追加したファイルの確認ができる
--oneline コミット履歴を1行で表示する(コミット番号・メッセージのみ)
--author コミット履歴をコミットユーザーを指定して表示する
--merges コミット履歴のマージコミットのみ表示する
--no-merges コミット履歴のマージコミットを外して表示する
--graph コミット履歴にグラフをつけて表示する

他のオプションなどは、公式のこちらのページに書いてあるので、確認してみてください。

コメント

タイトルとURLをコピーしました