git diff 코드 정리
git diff
git diff HEAD
git diff --staged
git diff [filename]
git diff [branchname1]..[branchname2]
git diff란?
commit이나 branch 사이에 다른 점
파일(Working Directory)와 Repository 사이에 다른 점을 보여주는 명령어
git diff와 git diff HEAD 차이
1) git diff
Working Directory와 Staging Area 사이의 차이를 확인하기 위해 사용
- caution : git add로 Staging Area로 넘어갔으면 git diff에서 보여주지 않음
2) git diff HEAD
Working Directory와 Staging Area 의 변경사항 모두를 Repository의 HEAD 커밋과 비교함
Staging Area에 올라간 내용은 물론 현재 작업 중인 내용(Working Directory) 모두 Repository의 HEAD와 비교됨
- Staging Area로 올라가 안보인 변경사항은 git diff HEAD로 보인다
git diff 메세지 내용
상황 : test.txt에 원래 데이터 123에서 456을 추가함
- 1번 ---a : 변경 전 파일 지칭명
- 2번 +++b : 변경 후 파일 지칭명
- 3번 test.text : 변경 전 파일명
- 4번 test.text : 변경 후 파일명
- 5번 - : 변경 전 파일 지칭
- 6번 1,3 : 코드 1번 line 기준으로 3번 line까지 변경됐다는 의미
- 7번 + : 변경 후 파일 지칭
- 8번 1,6 : 코드 1번 line 기준으로 6번 line까지 변경됐다는 의미
- 9번 123 : 변경 전 파일의 코드 1-3번라인의 내용
- 10번 +4 +5 + 6 : 변경 전 파일(-) 1-3번 라인 뒤에 변경 후, 파일(+) 4-6번라인이 추가됐다는 의미
git diff --staged
git diff --staged는 Staging Area와 Repository HEAD 커밋 사이의 변경사항 확인을 위해 사용
커밋 전 사용되는 명령어로 가장 많이 씀
Staging Area에 올라간 변경사항만 Repository의 HEAD 커밋과 비교되며, 현재 작업 중인 Working Directory에서 git add되지 않은 변경된 사항은 반영x
※ git diff --staged와 git diff --cached 같다
git diff [option] [filename]
git add 파일명처럼 특정 파일에 대한 변경사항만 확인할 때 사용
git diff [option] [filename]
git diff [branch1]..[branch2]
브랜치 간 변경사항 확인
git diff [branch1]..[branch2]
※ 그냥 git add 하면 git diff가 안나오는데 왜그럴까?
git diff는 Working Directory와 Staging Area 사이의 차이를 보여주는데,
git add를 통해 Staging Area에 변경 사항이 올라가버렸기 때문
참고자료
https://kotlinworld.com/278#git%--diff�%--%--%--git%--diff%--HEAD%--�%A-�%--�%-D%B-�%-A%A-�%--%-C%--�%B-%--�%B-�%--�%--��%--�%--�%--%--�%-D%B-
'Git & GitHub' 카테고리의 다른 글
[Git] git add -p (0) | 2023.03.01 |
---|---|
[Git] git log 정리 (0) | 2023.02.17 |
[Git] pull 시, conflict 해결방법 : 강제 pull (0) | 2022.12.10 |
[Git][에러메시지] fatal: refusing to merge unrelated histories (0) | 2022.11.30 |
[GitHub] 디폴트(default) 브랜치(branch) 변경 및 브랜치명 변경하기 (0) | 2022.11.30 |