본문 바로가기

직접 만든 소프트웨어, 두 가지 개발 기록

구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다.

소프트웨어개발

gitignore가 적용되지 않을 때: 추적 파일과 규칙 일치를 따로 확인

by 아빠띠띠뽀 2026. 10. 22.

커밋 기록에 연결된 파일과 무시 필터를 통과하는 파일을 비교한 개념 그림
직접 생성한 개념 이미지입니다. 실제 서비스 화면이나 구축·성능 시험 결과가 아닙니다.

이미 Git이 추적하는 파일에는 .gitignore를 추가해도 추적이 자동 해제되지 않습니다. 먼저 git ls-files로 추적 상태를 보고, git check-ignore로 규칙을 확인하세요. 두 질문을 섞으면 정상 동작을 캐시 오류로 오해하기 쉽습니다.

원인: 추적 상태와 무시 규칙은 다른 문제다

무시 규칙은 의도적으로 추적하지 않을 파일에 사용합니다. 이미 인덱스에 있는 파일을 계속 수정하고 있다면 규칙을 추가해도 변경이 보일 수 있습니다. 먼저 저장소 루트와 대상 경로를 확인하고, 파일 내용에 비밀값이 있으면 출력이나 화면 공유에 포함하지 마세요.

관찰 확인할 질문 다음 단계
ls-files에 파일 표시 이미 추적 중인가 추적 유지 필요성 검토
미추적인데 규칙 불일치 패턴·위치가 맞나 check-ignore 진단
규칙은 일치하지만 변경 표시 추적 여부를 따로 봤나 인덱스 확인

1. 읽기 전용 명령으로 상태를 나눈다

git --version
git status --short
git ls-files -- settings.local
git check-ignore -v -- settings.local
git check-ignore -v --no-index -- settings.local

예시 파일명은 실제 대상 경로로 바꾸세요. check-ignore는 기본적으로 추적 파일을 진단 대상에서 제외합니다. --no-index는 인덱스를 무시하고 무시 규칙 자체를 진단할 때 유용합니다. 이 옵션으로 추적 상태가 바뀌지는 않습니다.

2. 임시 저장소에서 확인한 결과

2026년 10월 21일 macOS의 Git 2.50.1(Apple Git-155)에서 별도 임시 저장소로 시험했습니다. settings.local을 git add로 인덱스에 넣고, 같은 파일명을 .gitignore에 추가했습니다. 커밋·원격 푸시·운영 파일 변경은 하지 않았습니다.

ls-files는 settings.local을 표시했습니다. 기본 check-ignore는 출력 없이 종료 상태 1이었고, --no-index를 붙이면 .gitignore의 첫 줄과 settings.local 일치를 표시했습니다. 이 조합은 “규칙이 없어서 출력이 비었다”와 “이미 추적 중이라 기본 검사에서 제외됐다”를 나눠 보는 근거입니다.

3. 추적 해제는 영향 확인 후 파일 단위로 한다

git rm --cached -- settings.local
git status --short --ignored

이 명령은 읽기 전용이 아닙니다. 추적을 그만둘 것이 확실하고 파일을 별도로 보존한 경우에만 검토하세요. 같은 임시 시험에서는 명령 뒤에도 로컬 파일이 남았고, status의 ignored 항목으로 확인됐습니다. 새로 만든 시험 저장소의 결과이므로 기존 팀 저장소의 모든 변경 상태를 대신하지 않습니다.

기존 커밋에 있던 파일을 제거하는 변경은 팀원과 배포 과정에 영향을 줄 수 있습니다. 변경 전 상태와 필요한 파일을 보존하고, 전체 디렉터리를 한꺼번에 인덱스에서 빼는 명령은 피하세요. 커밋 전 diff와 상태를 확인하고 의도하지 않은 삭제가 보이면 보존한 기준에 맞춰 해당 변경만 복구합니다.

확인과 주의

정상 기준은 “status가 조용하다” 하나가 아닙니다. 무시 규칙이 맞고, 의도한 파일만 추적에서 제외되며, 앱이 필요한 파일을 계속 확보할 수 있어야 합니다. 비밀키가 이미 커밋됐다면 .gitignore 추가나 현재 인덱스 제거만으로 과거 기록에서 사라지지 않습니다. 노출 대응은 별도로 진행해야 합니다.

FAQ

check-ignore가 비면 규칙 오류인가요? 추적 상태와 종료 상태를 함께 확인해야 합니다.

--no-index가 파일을 제거하나요? 여기서는 검사 시 인덱스를 보지 않는 옵션이며 추적을 변경하지 않습니다.

전체 캐시를 지워야 하나요? 먼저 한 파일의 상태를 진단하고 필요한 변경 범위만 정하세요.

공식 출처와 관련 글

자료 확인일: 2026년 10월 21일. macOS 임시 로컬 Git 저장소, Git 2.50.1 Apple Git-155. 원격·운영 저장소 변경 없음. 임시 로컬 시험 결과만 구분해 기록했습니다.

gitignore 적용 범위

추적 파일 조회

무시 규칙 진단

인덱스에서 제거

관련 글: 저장소 소유권 오류와 구분하기