웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > etc

Git 이전에 커밋한 내용과 파일 내용을 비교하는 방법은?

Last Modified : 2021-06-22 / Created : 2017-04-25
16,070
View Count

git을 사용하는 경우 만약 이전에 커밋한 내용과 무엇이 달라졌는지 확인하는 방법은 무엇일까요?

git을 사용하여 커밋하는 경우 고유의 commit hash값이 생성됩니다. 이는 git log 명령어를 사용하여 확인할 수 있죠.
> git log

!! 그렇다면 커밋(commit)으로 뭐가 달라졌을까?
만약 특정 커밋이 어떤 부분이 바뀌었는지 궁금하다면? 어떻게 확인할 수 있을까요? 이처럼 여러 개의 커밋이 존재하는 경우 달라진 부분을 확인하는 방법입니다.



# git에서 이전 수정 내용, commit 내용 비교, 확인하기

먼저 커밋의 업데이트된 내용을 확인할 때 두 가지 방법이 존재합니다.

1. 시작 커밋과 종료 커밋 두 개를 사용하여 변경된 부분 확인하기
2. 하나의 커밋에서 바뀐 내용 확인하기
위 와 같이 두 가지 방법이 있으며 둘 다 많이 사용됩니다. 우선 두 개의 서로 다른 값을 사용하는 방법입니다.

@ git diff, 커밋한 모든 파일의 변경 내용을 확인
이처럼 커밋 사이의 변경된 내용을 확인할 경우 diff를 사용합니다. diff를 사용하면 업데이트 된 서로 다른 커밋 해쉬에서 차이점만 출력해주어 매우 편리합니다.
> git diff HEAD^ HEAD

> git diff commitA commitB

위에서는 두 가지 방법이 사용되었습니다. 둘 다 동일하지만 위의 에제처럼 HEAD^ HEAD를 사용하는 경우 바로 직전의 업데이트 내용을 바로 확인할 수 있습니다. 즉 가장 최근의 변경 값만 알고 싶다면 커밋 해쉬를 몰라도 바로 변경 된 내용을 확인할 수 있습니다.

그 아래의 commitA, commitB가 바로 두 개의 커밋 사이의 변경된 업데이트 내용을 얻을 때 사용합니다. 이 방법은 예전에 업데이트 된 내용을 알고 싶을 때 사용할 수 있겠습니다.

@ git show, 하나의 커밋 해시를 사용할 경우
아래 방법은 두 번째 방법으로 show 명령어를 사용합니다. git show를 입력하면 최근 달라진 이력을 바로 출력합니다.
> git show commitA

> git show commitA commitB ...


! 만약 변경된 파일만 알고 싶다면? --name-only


변경된 파일 경로와 이름만 알고 싶다면? 서버에 배포를 목적으로 업데이트 된 파일만 올리고 싶은 경우가 여기에 해당하겠죠~ 만약 파일만 따로 알고 싶다면 --name-only를 사용할 수 있습니다. 이 외 방법은 동일합니다.
> git diff --name-only commitA commitB

> git show --name-only commitA commitB commitC ...


@ (추가) 에디터를 사용하여 비교하는 방법
vi, vim 등의 내장된 에디터를 사용하여 비교하는 것 역시 가능합니다. 아래와 같이 difftool을 사용합니다.
git difftool

여기까지 git으로 커밋으로 변경된 파일이 무엇이 달라졌는지 확인하는 다양한 방법을 알아보았습니다.

Previous

Facebook 새로운 360 카메라 공개

Previous

HTML5의 Video태그에서 m3u8 포맷이 재생되지 않는 경우