본문 바로가기
개발/Git, Github

[git] git diff 명령어

by 77monkey 개발자 2024. 7. 20.
반응형

 

 

 

 

수정을 하고 난 뒤 어떤 것을 수정했는지 확인할 때가 있습니다. 그때 사용하는 git 명령어가 git diff 명령어입니다. git diff 명령어에 대해서 알아보도록 합시다.

 

git diff 명령어

git diff 명령어는 Git 저장소에서 파일 간의 차이를 보여주는데 사용됩니다.

 

git diff

간단한 예시를 통해서 git diff 명령어에 대해서 알아보도록 하겠습니다. 먼저 Git 저장소인 diff_test 디렉터리를 하나 만들었습니다. 그런 뒤 test.txt에 1을 썼습니다. 

test.txt 파일 생성

git diff 명령어를 입력하면 아무런 출력도 없습니다. 그 이유는 git status를 하게 되면 알 수 있습니다. git status에서 보시다시피 Untracked files에 test.txt가 있기 때문입니다.

git status 1
git status 1

git add 명령어를 입력한 뒤, test.txt 파일을 수정합니다. 그리고 git status 명령어를 통해서 현재 상태를 확인합니다. 그러면  Changes not staged for commit이라고 나오면서, 기존에 Untracekd files에 있던 test.txt 파일이 tracked files에 포함된 것을 확인할 수 있습니다.

git status 2
git status 2

드디어 오늘의 주인공인 git diff 명령어를 입력하면 아래와 같이 나옵니다. 로그를 보면 a/test.txt는 수정 전을 의미하고, b/test.txt는 수정 후를 의미합니다. 따라서 빨간 글씨로 "-1"로 표현된 것은 수정 전을 의미하고, 초록 글씨로 "+2"는 수정 후를 의미합니다.

git diff
git diff

git diff [--cached | --staged]

그러면 git add를 통해서 stage area에 있는 파일들과 마지막 commit 간의 차이는 어떻게 보여줄까요? 네, 맞습니다. git diff --cached 또는 git diff --staged 명령어를 통해서 해당 차이를 나타낼 수 있습니다.

위 예시에서 이어서 git diff --cached 명령어를 입력하면 아래와 같이 결과가 나옵니다. 출력 로그를 확인해 보면, /dev/null과 b/test.txt가 있는 것을 확인할 수 있습니다. /dev/null이 나온 이유는 이전에 만들어진 commit이 없기 때문입니다. 따라서 stage area 값이 1이 다르다고 나옵니다.

git diff --cached
git diff --cached

git diff [file_name]

git diff 명령어에서 file_name이 붙었습니다. 이럴 경우에는 전체 diff가 아닌 해당 file에 대한 diff를 확인하고자 할 때 사용됩니다. 현재 예시에서는 하나의 파일에 대해서 진행해서 git diff 일 경우와 동일하게 나오지만, 여러 파일을 수정하고 해당 파일만의 수정내용을 확인하실 때 해당 명령어를 사용하시면 유용합니다. 

git diff test.txt
git diff test.txt

마무리

git diff에 대해서 배워봤는데, 어떠셨나요? 보통 git diff만 알고 계시는 경우가 많은데, git diff --cached 같은 옵션을 알게 된다면 전보다 개발하시는데 도움이 되실 것 같습니다. 저는 보통 git diff 명령어를 제가 수정한 사항을 commit 만들기 전에 확인하는 용도로 많이 씁니다. 여러분도 한 번 해보시지요.

반응형

'개발 > Git, Github' 카테고리의 다른 글

[git] git log 명령어  (0) 2024.07.07
[git] git commit 명령어  (0) 2024.06.30
[git] git add 명령어  (0) 2024.06.27
[git] git init 명령어  (0) 2024.06.26
[git] git 설치를 끝냈다면 git 설정 (feat .gitconfig)  (0) 2024.06.24