핵심 요약
.gitignore는 아직 Git이 추적하지 않는 파일에만 적용된다. 이미 한 번 커밋된 파일은 .gitignore에 넣어도 계속 추적된다. 인덱스(캐시)에서 제거해야 무시되기 시작한다 — git rm --cached를 쓴다.
1. 해결
# 디스크 파일은 두고 추적만 해제
git rm --cached path/to/file
# 디렉토리 전체
git rm -r --cached node_modules
# .gitignore 추가 후 커밋
git add .gitignore && git commit -m "stop tracking"
2. 캐시 한 번에 정리
# .gitignore 규칙을 전체에 다시 적용
git rm -r --cached .
git add .
git commit -m "apply gitignore"
3. 함정
- 이미 올라간 비밀(.env)은 추적 해제만으론 히스토리에 남는다 — 키 재발급 필수
git rm(–cached 없이)은 실제 파일도 지운다 — 반드시 --cached- 전역 무시는
~/.gitignore_global로
자주 묻는 질문
.gitignore에 넣었는데 왜 계속 보이나요?
이미 추적 중인 파일이라 그렇습니다. git rm --cached로 인덱스에서 빼고 커밋하면 그때부터 무시됩니다.
실수로 올린 .env는 ignore만 하면 되나요?
아닙니다. 히스토리에 남아 노출된 상태이니 키를 즉시 재발급하고, 필요하면 히스토리에서도 제거하세요.

댓글 0