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으로 커밋으로 변경된 파일이 무엇이 달라졌는지 확인하는 다양한 방법을 알아보았습니다.