.gitignore 패턴 판정기
.gitignore 규칙과 경로를 넣으면 그 파일이 무시되는지, 어느 줄이 마지막으로 이겼는지 알려줍니다. 부모 디렉터리가 제외돼 되살릴 수 없는 경우도 짚어 줍니다.
주석(#)과 빈 줄은 그대로 두어도 됩니다.
저장소 최상위에서 본 상대경로로 넣으세요.
판정
무시됩니다
12번째 줄 "docs/*.draft.md" 이 마지막으로 걸렸습니다
규칙별로 걸렸는지
| 줄 | 규칙 | 성격 | 걸림 |
|---|---|---|---|
| 2 | /build | 경로 전체 | — |
| 3 | node_modules/ | 디렉터리만 · 이름만 | — |
| 4 | *.log | 이름만 | — |
| 5 | !important.log | 되살리기 · 이름만 | — |
| 8 | .cache/ | 디렉터리만 · 이름만 | — |
| 9 | **/tmp/ | 디렉터리만 · 경로 전체 | — |
| 12 | docs/*.draft.md | 경로 전체 | 걸림 (이김) |
위에서 아래로 훑어 마지막으로 걸린 줄이 결정합니다. 되살리기(!)를 앞에 두면 뒤의 제외 규칙에 다시 걸려 소용이 없습니다.
패턴 안에 슬래시가 없으면(
*.log) 어느 깊이에서든 이름만 맞으면 걸립니다. 앞이나 가운데에 슬래시가 있으면(/build, doc/frotz) .gitignore가 놓인 곳을 기준으로 경로 전체를 맞춥니다. 끝에만 슬래시가 붙으면(build/) 디렉터리만 걸리되 깊이는 상관없습니다.*는 슬래시를 넘지 못하고 **는 넘습니다.a/*.txt는 a/b.txt를 잡지만 a/x/b.txt는 못 잡습니다. a/**/b.txt는 둘 다 잡고 a/b.txt처럼 사이가 비어 있어도 잡습니다. ?는 슬래시가 아닌 한 글자, [0-9]는 문자 범위입니다..git/info/exclude, core.excludesFile까지 함께 보고, 무엇보다 이미 추적 중인 파일은 무시 규칙과 상관없이 계속 추적합니다. 실수로 커밋한 파일을 무시 목록에 넣어도 사라지지 않는 이유이며, 그때는 git rm --cached로 먼저 빼야 합니다.사용 방법
- 1.gitignore 내용을 그대로 붙여 넣습니다. 주석과 빈 줄은 두어도 됩니다.
- 2판정할 경로를 저장소 최상위 기준 상대경로로 넣습니다.
- 3파일인지 디렉터리인지 고릅니다. 끝에 슬래시가 붙은 규칙은 디렉터리만 걸립니다.
- 4규칙별 표에서 어느 줄이 걸렸고 어느 줄이 이겼는지 확인합니다.
자주 묻는 질문
이미 추적 중인 파일이기 때문일 가능성이 큽니다. Git은 한 번 추적을 시작한 파일은 무시 규칙과 상관없이 계속 추적합니다. git rm --cached로 색인에서 먼저 빼야 합니다. 그 밖에 규칙 순서가 잘못됐거나, 부모 디렉터리가 제외돼 되살리기가 먹지 않는 경우도 있습니다.
부모 디렉터리가 이미 제외됐기 때문입니다. Git은 제외된 디렉터리 안을 아예 들여다보지 않으므로 그 안의 파일을 되살릴 수 없습니다. build/를 제외하고 !build/keep.txt를 써도 소용없습니다. build/**로 안쪽만 제외하고 !build/로 디렉터리를 살린 다음 파일을 되살려야 합니다.
중요합니다. 위에서 아래로 훑어 마지막으로 걸린 줄이 결정합니다. !important.log를 *.log 앞에 두면 뒤의 *.log에 다시 걸려 소용이 없습니다. 되살리기는 항상 제외 규칙보다 뒤에 두세요.
패턴 안에 슬래시가 없으면 어느 깊이에서든 이름만 맞으면 걸립니다(*.log). 앞이나 가운데에 있으면 .gitignore가 놓인 곳 기준으로 경로 전체를 맞춥니다(/build, doc/frotz). 끝에만 붙으면 디렉터리만 걸리되 깊이는 상관없습니다(build/).
*는 슬래시를 넘지 못하고 **는 넘습니다. a/*.txt는 a/b.txt를 잡지만 a/x/b.txt는 못 잡습니다. a/**/b.txt는 둘 다 잡고, 사이가 비어 있는 a/b.txt도 잡습니다. **/tmp/는 어느 깊이의 tmp 디렉터리든 잡습니다.
이 판정기의 계산 로직은 실제 git check-ignore 결과와 61가지 사례에서 모두 일치하는 것을 확인했습니다. 다만 .gitignore 하나만 보므로, 상위 디렉터리의 .gitignore 나 .git/info/exclude, core.excludesFile이 함께 걸리는 경우는 반영되지 않습니다.
알아두면 좋은 점
- .gitignore 파일 하나만 봅니다. 상위 디렉터리의 .gitignore, .git/info/exclude, core.excludesFile은 반영하지 않습니다.
- 이미 추적 중인 파일은 무시 규칙과 상관없이 계속 추적됩니다. git rm --cached로 색인에서 빼야 무시가 시작됩니다.
- 계산 로직은 실제 git check-ignore와 61가지 사례에서 대조해 모두 일치하는 것을 확인했습니다.
- 넣은 내용은 브라우저 안에서만 처리되며 서버로 전송되지 않습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 8월 30일 · 결과는 참고용 추정치입니다.