새 파일이 git diff에 안 보일 때 확인할 것
by 그릿 | GROWTH_ESSAY | 2026-10-13
#practical-guides #Git #개발git diff --cached는 인덱스와 HEAD를 비교하고, git diff HEAD는 작업트리와 HEAD를 비교합니다. 새 파일의 현재 상태는 git status --short로 확인하세요.
왜 이렇게 보이나요
Git은 파일을 만든 직후 그 파일을 인덱스에 자동으로 넣지 않습니다. 이때 새 파일은 작업트리에 존재하지만 아직 Git이 추적하는 변경 목록에는 들어오지 않은 상태입니다. git diff는 작업트리와 인덱스를 비교하므로, 새 파일을 만들고 바로 실행하면 비교할 인덱스 변경이 없어 출력이 비어 있을 수 있습니다.
이 상태에서 git status --short를 실행하면 새 파일은 ??로 표시됩니다. 두 물음표는 인덱스에 등록되지 않은 경로라는 뜻입니다. 인덱스 상태와 작업트리 상태를 함께 보는 짧은 형식에서 첫째 칸은 인덱스, 둘째 칸은 작업트리의 상태를 나타냅니다. 새 파일은 아직 인덱스가 알지 못하므로 ??가 표시됩니다.
어떤 명령으로 확인하나요
새 파일을 커밋할 변경으로 올리려면 git add new.txt를 실행합니다. 이후 git diff --cached를 실행하면 인덱스에 담긴 새 파일의 diff가 보입니다. 이 명령은 인덱스와 현재 HEAD를 비교하므로, 다음 커밋에 포함될 내용을 살펴보는 데 사용합니다.
작업트리에서 아직 인덱스에 반영하지 않은 변경까지 HEAD와 한 번에 비교하려면 git diff HEAD를 사용합니다. 이 비교에는 인덱스에 올라간 변경과 작업트리에 남은 변경이 함께 포함될 수 있습니다. 반면 git diff는 작업트리와 인덱스 사이의 차이만 보여줍니다.
git add 뒤에 파일을 다시 수정하면 인덱스에는 add 당시의 내용이 남고 작업트리에는 새 수정 내용이 남습니다. 이때 git diff에서 두 상태 사이의 차이가 다시 나타나며, git diff --cached에서는 add 시점의 내용이 계속 보입니다. 최신 수정까지 다음 커밋에 담으려면 해당 파일에 git add를 다시 실행해야 합니다.
적용 조건과 다음 확인
git diff --cached가 비어 있어도 작업트리에 변경이 전혀 없다고 즉시 판단하지 마세요. 아직 add하지 않은 수정이나 추적되지 않은 파일은 이 명령의 비교 대상에 들어오지 않을 수 있습니다. 먼저 git status --short로 ??, 작업트리 변경, 인덱스 변경을 함께 확인하세요.
새 파일이 목록에 보이지 않는다면 Git의 무시 규칙이 적용됐을 가능성도 확인 대상입니다. git status는 기본적으로 추적되지 않은 파일과 디렉터리를 표시하며, 무시된 파일은 별도 옵션 없이 목록에 나타나지 않습니다. 이 글의 재현처럼 새 파일을 만든 뒤 git status --short에서 ?? new.txt를 확인하고, git add new.txt 후 git diff --cached에서 새 파일 diff를 확인하는 순서로 상태를 나누어 보면 됩니다.
새 폴더에서 직접 확인하기
새 예제 폴더에서 실행하세요. 기존 프로젝트에서 초기화 명령을 실행하지 않습니다.
mkdir git-diff-example
cd git-diff-example
git init -q
printf 'before\n' > note.txt
git add note.txt
git -c user.name=Example -c user.email=example@example.invalid -c commit.gpgsign=false commit -qm initial
printf 'new\n' > new.txt
git diff
git status --short
git add new.txt
git diff --cached실제로 확인한 출력
git diff
(출력 없음)git status --short
?? new.txt
git diff --cached
diff --git a/new.txt b/new.txt
new file mode 100644
index 0000000..3e75765
--- /dev/null
+++ b/new.txt
@@ -0,0 +1 @@
+new
예제 확인: git version 2.50.1 (Apple Git-155), 2026-10-13
Git 공식 문서에서 명령의 비교 범위를 확인할 수 있어요.