Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

git diff 에서 변경된 부분을 더 명확하게 보는 방법

git diff는 다들 알다시피 두 커밋간이나 HEAD와 워킹 디렉토리의 차이점을 보여주는 명령어이다.

git diff 결과

일반적으로 git diff 명령어를 사용하면 위처럼 수정된 라인과 수정한 라인을 비교해 볼 수 있다.(color 옵션은 꼭 키자.) diff를 하는 경우 한 라인에서 한글자만 수정해도 위처럼 삭제된 라인과 추가된 라인으로 표시가 되는데 코드같은 경우는 그나마 차이점을 보기 쉽지만 글이나 문서같은 경우는 비교가 쉽지 않다.

git diff 결과

문서같은 경우는 위처럼 오타 수정이나 간단한 수정을 하게 되는 경우가 많은데 이러한 경우 어디가 달라졌는지 한번에 알아보기가 어렵다.

--color-words

git diff --color-words처럼 diff를 할 때 --color-words옵션을 추가하면 다음과 같이 변경된 라인 대신 단어(공백을 구분자로)로 표시가 된다.

--color-words 사용으로 변경된 단어가 표시된 화면


--word-diff

--color-words 대신 --word-diff옵션을 사용하면 다음과 같이 지워지고 추가된 단어를 좀 더 명시적(?)으로 표시한다.

--word-diff 사용으로 변경된 단어가 표시된 화면


diff-highlight

위의 2가지 옵션을 적절히 사용하면 좀 더 쉽게 변경된 부분을 찾아 낼 수 있지만 위에서는 아주 간단한 변경만 있었지만 그렇지 않은 경우에는 한줄에 나타나서 오히려 읽기가 어려울 수 있다. git 저장소에 가면 contrib이라는 폴더가 있는데 이 안에 diff-highlight라는 스크립트가 있다. 이 파일을 내려받아서 PATH에 추가하면 git diff | diff-highlight처럼 명령어를 사용할 수 있다. 이건 귀찮으므로 ~/.gitconfig파일에 다음과 같은 설정을 추가한다.

[pager]
  diff = diff-highlight | less

이는 git config --global pager.diff 'diff-highlight | less' 명령어로 설정에 추가한 것과 동일하다.

diff-highlight 설정으로 diff결과에 변경된 단어 표시가 된 화면

이렇게 설정을 하고 나면 이후 diff 명령어를 사용할 때 자동으로 위와 같이 변경된 라인에 달라진 단어 부분이 추가로 표시되어 나타난다.

2013/12/24 03:39 2013/12/24 03:39