Critical
- git diff 명령어 실행 결과 읽기
- git diff 명령어의 기본적인 사용 방법
Important
- 브랜치, 커밋, 특정 파일의 비교
- git diff --stage
git diff는 깃에서의 변경 사항들을 보여주는 명령어이다.
git status나 git log처럼 저장소에 아무런 영향을 미치지 않는 명령어이다.
git diff
스테이지에 등록되지 않은 작업 영역의 변경사항을 모두 나열한다.
a는 커밋된 파일, b는 작업 영역의 파일이다.
git diff HEAD
마지막 커밋이 실행된 이후의 변경사항을 모두 나열한다.
마지막 커밋 이후 변경 사항을 스테이지에 올리지 않은 상태라면 git diff, git diff HEAD 둘다 같은 결과를 출력한다.
하지만 변경 사항을 스테이지에 올린다면 git diff는 아무것도 출력되지 않지만 git diff HEAD는 결과가 출력된다.
git diff --staged (--cached)
스테이지에 등록된 변경사항만을 나열한다.
git diff branch1 branch2 (branch1..branch2)
두 브랜치를 비교하여 변경사항을 모두 나열한다.
a, b는 브랜치 입력 순서에 따라 매칭된다. 위와 같은 경우는 a는 branch1, b는 branch2이다.
git diff commit1 commit2 (commit1..commit2)
두 커밋을 비교하여 변경사항을 모두 나열한다.
마찬가지로 a, b는 커밋 입력 순서에 따라 매칭된다.
* HEAD는 단순히 마지막 커밋을 가리키는 레퍼런스이다. 그래서 git diff HEAD HEAD~1 실행시 마지막 커밋과 그 부모커밋을 비교하는 명령어가 된다.
git diff <file-name1> <file-name2> <..>
git diff --staged <file-name>
git diff HEAD <file-name>
git diff branch1..branch2 <file-name>
git diff commit1..commit2 <file-name>
위와 같이 특정 파일에 대한 변경사항만 확인할 수도 있다. 동시에 여러 개의 파일도 가능하다.
-, +를 b에 비교해서 없는 내용, 있는 내용으로 구분지어서 생각하기 보다는 -는 a에만 있는 내용, +는 b에만 있는 내용이라고 생각하는게 이해하기 조금 더 쉽다.
GUI 툴을 사용하면 매번 상황에 따라 명령어를 작성하던것을 원클릭으로 볼 수 있어서 훨씬 편하다.
'프로그래밍 > Git & Github' 카테고리의 다른 글
[Git & Github] 10. 변경사항 취소하기 및 시간 여행 (0) | 2022.10.22 |
---|---|
[Git & Github] 9. 스태시(Stash)의 모든 것 (0) | 2022.10.21 |
[Git & Github] 7. 브랜치 병합하기, 맙소사! (0) | 2022.10.19 |
[Git & Github] 6. 브랜치(branch)로 작업하기 (0) | 2022.10.18 |
[Git & Github] 5. 커밋과 관련 주제 자세히 알아보기 (0) | 2022.10.18 |