Git Diff
마지막 업데이트
git diff는 저장소의 두 상태 사이의 정확한 줄 단위 변경 사항을 보여줍니다. 인수 없이 실행하면 변경했지만 아직 스테이징하지 않은 내용을 보여줍니다. 스테이징된 내용을 보려면 --staged를 추가하고, 비교하려면 두 커밋이나 브랜치를 지정하며, 범위를 좁히려면 파일을 지정하세요.
이것들을 터미널 플레이그라운드에서 사용해 보세요 - 브라우저 안의 실제 셸이며, 설치할 것이 없습니다.
구문
| Command | What it does |
|---|---|
git diff | 스테이징되지 않은 변경과 인덱스 비교 |
git diff --staged | 스테이징된 변경과 마지막 커밋 비교 |
git diff HEAD | 마지막 커밋 이후의 모든 변경 |
git diff main feature | 두 브랜치 간의 차이 |
git diff <hash1> <hash2> | 두 커밋 간의 차이 |
git diff -- file.txt | 단일 파일의 변경 |
일반적인 경우
| Goal | Command |
|---|---|
| 곧 커밋할 내용 확인 | git diff --staged |
| 커밋되지 않은 작업 확인 | git diff |
| 내 브랜치를 main과 비교 | git diff main |
| 변경된 파일 이름만 확인 | git diff --name-only |
Git diff 자주 묻는 질문
git diff는 기본적으로 무엇을 보여주나요?
인수 없이 실행하면
git diff는 작업 트리에서 아직 스테이징되지 않은 변경 사항을 보여줍니다 - 마지막 git add 이후 편집한 내용입니다. 이미 스테이징한 내용(다음에 커밋될 내용)을 보려면 git diff --staged를, 마지막 커밋 이후의 모든 것을 보려면 git diff HEAD를 사용하세요.git diff와 git diff --staged의 차이는 무엇인가요?
git diff는 작업 트리를 스테이징 영역과 비교합니다(스테이징되지 않은 변경). git diff --staged(--cached도 동일)는 스테이징 영역을 마지막 커밋과 비교합니다(스테이징된 변경). 이 둘을 합치면 커밋되지 않은 작업의 두 부분을 모두 볼 수 있습니다.두 브랜치나 커밋을 어떻게 diff하나요?
이름을 지정하세요:
git diff main feature는 두 브랜치 간 차이를 보여주고, git diff <hash1> <hash2>는 두 커밋을 비교합니다. 비교를 단일 파일로 제한하려면 끝에 -- <file>을 추가하세요.전체 diff가 아니라 어떤 파일이 변경되었는지만 보려면 어떻게 하나요?
파일 이름만 보려면
git diff --name-only을, 각 파일과 몇 줄이 변경되었는지 보여주는 요약을 보려면 git diff --stat을 사용하세요. 줄 단위 전체 diff를 읽기 전에 빠르게 개요를 파악하는 데 유용합니다.이것을 온라인에서 연습할 수 있나요?
네. 터미널 플레이그라운드를 열어 브라우저 안의 실제 셸에서
git diff를 실행하세요 - 설치할 것이 없습니다. Coddy의 무료 대화형 Git 강좌에서도 변경 사항을 검사하는 방법을 단계별로 다룹니다.