1. レッスン一覧
  2. gitの履歴を確認

gitの履歴を確認

    1.概要

    Gitのログは、リポジトリに書き込まれたすべてのコミットに関する情報を提供します。次のように入力することで、ターミナル上でログを表示することができます。

    git log
    

    これにより、リポジトリ内のすべてのコミットが表示され、各変更のコミットハッシュ、コミッター、タイムスタンプ、およびメッセージが表示されます。

    また、git logには多数のオプションがあり、ログの内容を制御することができます。例えば、 --authorを使うと、特定のコミッターのみのログを抽出することができます。 --sinceオプションは、ある日付以降のログエントリーだけを表示します。今回お伝えしたコマンドだけでも基本的な操作はできますが、便利なオプションもあるので調べてみると良いでしょう。

    ワンラインで確認

    git log --onelineコマンドは、gitのログを1行で表示する方法です。このコマンドを使えば、ブランチ内のコミット履歴の一覧を表示し、各コミットのSHA-1ハッシュと、コミット時に入力したコメントが表示されます。

    以下は git log --onelineコマンドを実行した例です。

    $ git log --oneline
    f7f3f6d added the index.html file
    6a2baf3 added some text to README
    11c5564 added a new folder and file
    
    1. 左側にはSHA-1ハッシュが表示され、
    2. 右側にはそれぞれのコミットのコメントが表示されています。

    このコマンドは、より簡潔なログ情報を得たい場合に便利です。

    差分を確認

    git log -pは、コミットの履歴を表示するコマンドで、各コミットの変更内容も表示されます。

    以下はgit log -pの使用例です。

    $ git log -p
    
    commit abcdef1234567890
    Author: John Doe <[email protected]>
    Date:   Mon Jul 19 12:34:56 2021 +0900
    
        Added new feature
    
    diff --git a/file.txt b/file.txt
    index 1234567..89abcdef 100644
    --- a/file.txt
    +++ b/file.txt
    @@ -1,2 +1,3 @@
     Hello world!
     This is a test file.
    +This is the new feature added in this commit.
    
    commit 234567890abcdef1
    Author: Jane Smith <[email protected]>
    Date:   Sun Jul 18 23:45:01 2021 +0900
    
        Fixed a bug
    
    diff --git a/file.py b/file.py
    index 3456789..fedcba9 100644
    --- a/file.py
    +++ b/file.py
    @@ -10,5 +10,5 @@ def some_function(arg):
         :param arg: Some argument
         :return: Some value
         """
    -    # Here was the buggy code
    -    return arg + 1
    +    # The bug has been fixed
    +    new_arg = arg + 1
    +    return new_arg
    

    コミットのハッシュ値、作者、日付が表示された後に、差分(diff)が表示されます。Gitでは、各コミットは直前のコミットとの差分が記録されているため、git log -p コマンドで比較が可能です。差分の表示形式は diff コマンドでよく使われる形式になっています。--- 行と +++ 行には、変更前と変更後のファイルパスが表示されます。@@ 行には、変更箇所が表示されます。行頭に - がついている行は削除された行を表し、+ がついている行は追加された行を表します。

    統計情報を確認

    git log --statは、Gitリポジトリ内のコミット履歴を確認する際に使用されるGitコマンドです。このコマンドは、各コミットに関する統計情報を表示します。

    以下は、git log --statが表示する情報の例です。

    $ git log -stat
    commit 08c9d2130262255acd5e99605f542cf8fd634b39
    Author: John Doe <[email protected]>
    Date:   Tue Sep 21 11:23:29 2021 -0400
    
        Added new feature to app
    
     app/controllers/home_controller.rb | 4 ++--
     app/views/home/index.html.erb     | 3 ++-
     2 files changed, 4 insertions(+), 3 deletions(-)
    

    この出力は次のように解釈できます

    1. commit: コミットハッシュ値
    2. Author: コミットを作成した人の名前とメールアドレス
    3. Date: コミットが作成された日時
    4. コミットメッセージ
    5. ファイル名(変更された場合)と、行の追加/削除の数、および総行数