기능

주의사항

참고

# 아래 세 가지(공백, .., ...) 수행 결과는 같다.
git diff $1 $2 
git diff $1..$2
git diff $1...$2

형식

git diff $1..$2              # $1 -> $2로의 변경사항 비교: $1과 $2는 브랜치명 또는 커밋 해시가 될 수 있다.
git diff $1..$2 -- "파일경로" # 두 지점에서 특정 파일에 대해서만 비교

옵션

--staged       # 스테이징 영역의 변경사항 출력
--cached       # 위와 동일
--name-only    # 변경된 파일의 이름만 출력
--name-status  # 변경된 파일의 상태와 이름 출력(A: 추가, M: 수정, D: 삭제)
--stat         # 각 파일마다 통계 출력(추가/변경/제거된 줄 수)

--color        # 색상 추가
-u / --unified # 수정된 부분을 +/- 기호로 표시(명시하지 않아도 자동으로 사용되는 옵션)
-p / --patch   # 변경사항을 실제 코드 차이로 표시(명시하지 않아도 자동으로 사용되는 옵션)
--ignore-space-change # 공백 문자 변경사항 무시
--ignore-all-space    # 모든 공백 무시 

예시

# 아래 세 가지 모두 untracked 파일들의 변경사항은 무시
git diff          # modified 영역의 변경사항 출력
git diff --staged # 스테이징 영역의 변경사항 출력
git diff HEAD     # 현재 상태와 마지막 커밋 간의 변경사항 출력(즉, modified + staged 영역 변경사항)

git diff "파일경로" # 지정한 파일의 변경사항만 출력