Git - 2つのコミットの違いを確認する(コードの違い、ファイルの違い)

2つのコミットの変更(コードまたはファイル)を比較する方法を紹介します。

1. 頭蓋コミットを比較する方法

git diff <commit A> <commit B> コマンドは commit A と commit B の違いを示します。

次のように、commit a220506から 6f91aa3にどのような内容が変更されたかを比較できます。

$ git diff a220506 6f91aa3

diff --git a/java/SinglyLinkedList/MyLinkedList.java b/java/SinglyLinkedList/MyLinkedList.java
new file mode 100644
index 0000000..cbb1c38
--- /dev/null
+++ b/java/SinglyLinkedList/MyLinkedList.java
@@ -0,0 +1,116 @@
+// https://leetcode.com/explore/learn/card/linked-list/209/singly-linked-list/1290/
+
+public class MyLinkedList {
+
+    private SinglyLinkedNode head = null;
+
+    static class SinglyLinkedNode {
+        int val;

2. 最新に反映された commit の diff 確認

git diff HEAD^ HEAD コマンドで最新のコミットとそれ以前のコミットを比較できます。つまり、最後に適用されたコミットのdiffを確認できます。 ( HEADはブランチに適用された最新のコミットを意味し、 HEAD^はそれ以前のコミットを意味します。)

$ git diff HEAD^ HEAD

diff --git a/java/DoublyLinkedList/MyLinkedList.java b/java/DoublyLinkedList/MyLinkedList.java
new file mode 100644
index 0000000..c980010
--- /dev/null
+++ b/java/DoublyLinkedList/MyLinkedList.java
@@ -0,0 +1,128 @@
+// https://leetcode.com/explore/learn/card/linked-list/210/doubly-linked-list/1294/
+
+public class MyLinkedList {

コードdiffチェックの観点から、最新のコミットの変更を示すgit show HEADコマンドと同様の結果を示します。

$ git show HEAD

commit 311c1507023981ef3f83e0df58a890f6cffab742 (HEAD -> master, origin/new_branch, origin/master, origin/HEAD, new_branch)
Author: Jeongsik Mun <farfs.dev@gmail.com>
Date:   Fri May 22 20:30:15 2020 +0900

    Java - Doubly Linked List

diff --git a/java/DoublyLinkedList/MyLinkedList.java b/java/DoublyLinkedList/MyLinkedList.java
new file mode 100644
index 0000000..c980010
--- /dev/null
+++ b/java/DoublyLinkedList/MyLinkedList.java
@@ -0,0 +1,128 @@
+// https://leetcode.com/explore/learn/card/linked-list/210/doubly-linked-list/1294/
+
+public class MyLinkedList {

3.頭蓋コミットの変更されたファイルのリストを確認する

2つのコミット間の変更されたファイルリストだけを知りたいときは git diff <commit A> <commit B> --name-only コマンドを使うだけです。

$ git diff a220506 6f91aa3 --name-only
java/SinglyLinkedList/MyLinkedList.java
codechachaCopyright ©2019 codechacha