Git でファイルのコミット履歴を表示する

Azhar Bashir Khan 2022年2月6日
Git でファイルのコミット履歴を表示する

このチュートリアルでは、Git の特定のファイルに関連付けられているコミットの履歴を表示する方法を紹介します。

Git はバージョン管理システムです。Git を使用して、ファイルに加えられた変更を追跡します。

多くの場合、特定のファイルに加えられた変更を参照して表示する必要があります。Git は、ファイルに関連付けられたコミットの履歴を、ファイルで行われた特定の変更などの完全な詳細とともに表示するコマンドを提供します。

これを例を挙げて説明します。

gitkgit log を使用して、Git 内のファイルに関連付けられたコミットの履歴を表示する

共同開発環境では、Git リポジトリ内の特定のファイルのコミット履歴で特定のファイルに加えられた変更を表示したいことがよくあります。

特定のコミットで特定のファイルにどのような特定の変更が加えられたかを確認したいと思います。

たとえば、README.txt という名前のファイルがあります。このファイルを使用して、プロジェクトの開始以来、プロジェクトの情報を保持する場合があります。

ここで、その特定のファイルのコミット履歴を表示するとします。この目的のために、Git が提供する gitk ツールを使用できます。

Gitk はグラフィカルリポジトリブラウザです。これは、リポジトリの履歴を調査および視覚化するために使用されます。

gitk を使用して特定のファイルのコミット履歴を表示する構文は、gitk <filename> です。

したがって、ファイル README.txt の履歴を表示するには、次のようにコマンドを実行します。

$ gitk README.txt

以下のように Gitk のグラフィカルユーザーインターフェイス(GUI)を起動します。

gitk-example1

左上のペインには、リポジトリ内のファイル README.txt へのコミットが表示され、最新のコミットが上部に表示されます。

右下には、選択したコミットの影響を受けるファイルのリストが表示されます。ファイル名が README.txt のパスが表示されます。

左下のペインには、ファイル README.txt のコミットの詳細と完全な差分が表示されます。

したがって、Gitk ツールは、Git 内の特定のファイルに関連付けられたコミットの履歴を表示するのに最適です。

同様の目的でコマンド git log を使用することもできます。特定のファイルのコミット履歴を表示するコマンドの構文は、git log -p <filename> です。

したがって、この場合、コマンドは次のように実行されます。

$ git log -p README.txt
commit 8f2aa9af1a34ba8d57f60edcb6a29dfa23401e39 (HEAD -> main, origin/main)
Author: John Doe <johndoe@xyz.com>
Date:   Mon Dec 27 12:52:13 2021 +0530

    updated Readme.txt

diff --git a/project-path/README.txt b/project-path/README.txt
index 870c0a8..d09182c 100644
--- a/project-path/README.txt     
+++ b/project-path/README.txt     
@@ -1 +1,3 @@
-Initial project commit
+Further changes done
+1. This change
+2. That change

commit d25da7f49fae88a50bbc144df2429748077a2063
Author: John Doe <johndoe@xyz.com>
Date:   Mon Dec 27 12:50:53 2021 +0530

    Inital Readme.txt

diff --git a/project-path/README.txt b/project-path/README.txt
new file mode 100644
index 0000000..870c0a8
--- /dev/null
+++ b/project-path/README.txt     
@@ -0,0 +1 @@
+Initial project commit

-p オプションを指定した git log コマンドは、ファイルのコミット履歴と各コミット間の差異を表示します。

Gitk ツールは、git log コマンドの GUI ラッパーと見なすことができます。

したがって、Git 内の特定のファイルに関連付けられたコミットの履歴を表示する方法について詳しく説明しました。

詳細については、以下をご覧ください。

  1. Gitk
  2. gitk-Git リポジトリブラウザ
  3. git-log

関連記事 - Git History

関連記事 - Git Commit