Appia의 IT세상

[깃, Git] Git diff 전체, staged에 등록된 차이, 등록되지 않은 차이 확인하기 본문

Development/GIT

[깃, Git] Git diff 전체, staged에 등록된 차이, 등록되지 않은 차이 확인하기

Appia 2023. 11. 28. 07:04
반응형

[깃, Git] Git diff 전체, staged에 등록된 차이, 등록되지 않은 차이 확인하기

[깃, Git] Git diff 전체, staged에 등록된 차이, 등록되지 않은 차이 확인하기

 

이전 포스팅에서, git의 차이점을 확인하는 git diff 명령어에 대해서 살펴봤습니다. 그리고, 이 결과에 대해서 확인하는 방법 또한 살펴봤습니다. 물론, 사람의 대한 차이점들은 있을 수 있겠지만, 기본적으로 git diff의 기본 명령어를 사용하는 사람들 또한 많습니다. (저 또한 git diff명령어만 사용) 하지만, 경우에 따라서, 달라질 수 있습니다. 그래서 이번 포스팅에서는 앞선 포스팅의 연장선으로, stage을 관점으로 stage에 등록된 변경사항에 대해서 확인하는 방법, stage에 등록되지 않는 변경사항을 하는 확인하는 방법 그리고 이 두가지를 다 포함하는 변경사항을 확인하는 방법에 대해서 이야기를 해보도록 하겠습니다. 

 

[깃, Git] Git diff의 결과 읽는 방법

 

[깃, Git] Git diff의 결과 읽는 방법

[깃, Git] Git diff의 결과 읽는 방법 앞선 포스팅에서는 git diff명령어에 대해서 매우 간단히 살펴봤습니다. 실제, 개념정도의 의미에서 접근을 해봤습니다. 앞 포스팅에서도 언급을 하였지만, 이 git

appia.tistory.com


먼저, 이전 포스팅에서 사용한 Repository를 그대로 사용하도록 하겠습니다. 먼저 "git status" 명령어를 통해서 현재 브랜치의 상태를 확인해보겠습니다. 확인해 본 결과 총 3가지 파일이 수정이 이루어진 것을 알 수 있습니다. 

현재 git의 상태

 

물론, 상기에서 언급된 변경사항에 대해서는 아직 staged에 추가가 되지 않았습니다. 이 때, staged에 등록되지 않은 변경점을 확인하는 명령어는 다음과 같습니다. 

$ git diff # stage에 등록되지 않은 변경사항 확인

이전에서 포스팅에서 봤던 내용입니다. 

git diff 결과

 

그러면, 여기에서 stage에 등록 여부와 상관없이 전체의 변경 사항에 대해서 확인하기 위한 명령어를 살펴보겠습니다. 

$ git diff HEAD

흔히 위의 명령어를 현재 작업 디렉토리에 변경사항을 확인하는 방법이라고도 합니다. 여기에서 말하는 HEAD는 앞서서 아시다시피, 브랜치에 가장 마지막 commit을 참조합니다. 따라서, 마지막 commit을 기준으로 현재 작업 드렉토리에 대해서 변경사항을 확인하는 것입니다. 

git diff HEAD의 결과

 

위에서 본 명령어를 봤을 때, 현재 그냥 git diff와 동일한다는 것을 알 수 있습니다. 그 이유는 간단합니다. 바로, 현재 stage에 등록된 파일이 아무것도 없기 때문입니다. 

 

그러면 여기에서 stage에 등록된 파일에 대한 변경사항에 대해서 확인하는 방법에 대해서 살펴보겠습니다. 

$ git diff --cached
$ git diff --staged

위의 두 명령어 중 어느쪽이든 사용하시면 됩니다. 

 

git diff --cached / git diff staged의 결과

현재 stage에 등록된 파일이 없으므로, 위와 같이 아무 표시 없이 출력이 됩니다. 

 

그러면, 이 부분에 대해서 명확히 보기 위해서, 파일을 하나 stage에 추가해보도록 하겠습니다. 

예제 확인을 파일 stage 추가

 

위의 명령어를 통해서, color.txt 파일을 stage에 추가를 하였습니다. 그 부분을 토대로, 다시 한번 "git diff --cached"
또는 "git diff --staged"을 실행해보도록 하겠습니다. 

 

git diff --cached 결과

 

위에서 보이는 바와 같이 git diff --cahed를 실행하니, 앞서서  stage에 추가한 color.txt파일에 대해서만 변경사항을 확인합니다. 

 

그리고 나서 다시 한번 git diff를 실행해 본 결과는 위에서 보이는 바와 같이 color.txt를 제외한 파일에 대해서 비교를 하는 것을 알 수 있습니다. 

 

쉽게 생각하시면, 이렇게 생각하시면 됩니다. 

 

"git diff HEAD" = "git diff --cached"  + "git diff "

 

이와 같은 형태로 이해하시면 조금더 쉽게 생각을 할 수 있지 않을까요? 이와 같이 stage를 기준으로 등록된, 등록되지 않은, 그리고 모든 변경사항에 대해서 확인하는 방법에 대해서 살펴봤습니다. 

 
 

[깃, Git] Git 차이점 확인하는 diff 명령어 사용하기

[깃, Git] Git 차이점 확인하는 diff 명령어 사용하기 이전 포스팅에서는 Git merge Conflict(머지충돌)을 해결하는 방법에 대해서 살펴봤습니다. 앞선 포스팅에서 아마도 느끼셨겠지만, Git Merge 과정에서

appia.tistory.com

 

이번 포스팅에서는 [깃, Git] Git diff 전체, staged에 등록된 차이, 등록되지 않은 차이 확인하기라는 주제로 포스팅을 해봤습니다. 많은 사용자들이 GUI툴에 익숙해진 지금 이와 같이 명령어를 입력하여 변경사항을 확인하는 경우는 매우 드문 것이 사실입니다. 하지만, 자동화 및 타 툴과의 통합을 위해서, 실제로 명령어를 입력하는 방법에 대해서 숙지하는 것이 반드시 필요로 합니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

 

반응형
Comments