Git - 두개 commit의 차이점 확인 (코드 차이, 파일 차이)

두개 commit의 변경사항(code 또는 파일)을 비교하는 방법을 소개합니다.

1. 두개 commit을 비교하는 방법

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 명령어로 최신 commit과 그 이전 commit을 비교할 수 있습니다. 즉, 가장 마지막에 적용된 commit의 diff를 확인할 수 있습니다. (HEAD는 브랜치에 적용된 가장 최신 commit을 의미하고 HEAD^는 그 이전 commit을 의미합니다.)

$ 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 확인 측면에서, 가장 최신 commit의 변경사항을 보여주는 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. 두개 commit의 변경된 파일 목록 확인

두개 commit 사이의 변경된 파일 리스트만 알고 싶을 때는 git diff <commit A> <commit B> --name-only 명령어를 사용하면 됩니다.

$ git diff a220506 6f91aa3 --name-only
java/SinglyLinkedList/MyLinkedList.java

관련 문서

Loading script...
codechachaCopyright ©2019 codechacha