최근 commit에서 무엇이 변경되었는지 확인하고 싶을 때 간단하게 사용할 수 있는 명령어로 [ git diff ]가 있다.

사실 변경사항을 확인하기 위해서는 전문적인 diff 도구들을 사용하는 것이 좋다.
[ config merge.tool ] 설정을 할 때에 언급되었던 도구들의 UI가 제일 예쁘다.

하지만, GIT의 특성상 가장 편리한 인터페이스가 Cmmand Line Interface이기 때문에
Consol 환경에서 바로 변경 사항을 확인할 수 있는 방법은 잘 알아두는 것이 좋다.


우선 파일 하나를 변경한 commit이 있는 상황을 가정해보자.

 commit : (HEAD^) d664401  commit : (HEAD) d74336a
 abc  abc def


가장 간편하게 사용할 수 있는 변경사항 확인 방법은 [ git diff HEAD^ ] 명령이다.
하지만 옵션을 사용하면 단어 단위로 변경 내역을 확인 할 수도 있다.
 
 git diff HEAD^  git diff HEAD^ --word-diff
 diff --git a/4th.txt b/4th.txt
index 8baef1b..f9686f5 100644
--- a/4th.txt
+++ b/4th.txt
@@ -1 +1 @@
-abc
+abc def
 diff --git a/4th.txt b/4th.txt
index 8baef1b..f9686f5 100644
--- a/4th.txt
+++ b/4th.txt
@@ -1 +1 @@
abc {+def+}


더 재미있는 옵션도 있다.

$ git diff HEAD^ --word-diff=color

diff --git a/4th.txt b/4th.txt
index 8baef1b..f9686f5 100644
--- a/4th.txt
+++ b/4th.txt
@@ -1 +1 @@
abc def

그러면 삭제된 내역이 있는 경우에는 어떻게 나올까?


 commit : (HEAD^) d74336a  commit : (HEAD) 04c25de
 abc def  def ghi

$ git diff HEAD^ --word-diff=color

diff --git a/4th.txt b/4th.txt
index f9686f5..4842857 100644
--- a/4th.txt
+++ b/4th.txt
@@ -1 +1 @@
abcdef ghi

그렇다. 빨간색은 삭제, 녹색은 추가... 색으로 변경 내역을 확인할 수 있게 해준다.


변경 사항이 많을 때엔 큰 소용이 없겠지만,
소스 코드에서 수치만 변경을 했다던지 일부 단어들을 변경한다던지의 작은 부분의 변경이 있을 때엔
라인 단위의 diff 보다는 단어 단위의 diff가 보다 좋은 가독성을 보여줄 것이다.


굳이 색으로 표현하는 것이 아니더라도 [ --word-diff ] 옵션을 사용해보는 것을 추천한다.

우리 모두 즐거운 Gitster가 됩시다~ ^^
반응형

'SCM > Git-GitHub' 카테고리의 다른 글

[005] Install GIt (in Ubuntu)  (5) 2013.04.25
Empty commit - 내용없는 commit 만들기  (0) 2013.03.31
commit을 누가 얼마나 했나요?  (0) 2013.03.16
git log 출력 형식 꾸미기  (0) 2013.03.10
Git 1.8.1.3 Release  (0) 2013.02.19

+ Recent posts