0

Gitignore 테스터

.gitignore 규칙과 파일 경로 목록을 붙여넣으면, 어떤 규칙의 몇 번째 줄 때문에 어떤 파일이 무시되는지, 그리고 상위 디렉터리가 이미 무시되어 묵묵히 작동하지 않는 부정 규칙은 무엇인지 정확하게 보여줍니다.

🔒 전적으로 귀하의 브라우저에서 처리됩니다. 여기에 입력하는 어떤 것도 업로드되지 않습니다.

처리 중... 0%
.gitignore 규칙 분석 중
파일 경로 매칭 중
완료

결과

"내 .gitignore 부정 규칙이 왜 안 먹히지?"는 git 관련 질문 중에서도 가장 흔한 질문입니다. 그리고 솔직한 답은 거의 항상 같습니다. 이미 상위 디렉터리가 무시된 상태에서 그 안의 파일을 `!패턴`으로 다시 포함시키려는 시도는 절대 통하지 않습니다. git은 무시된 디렉터리 안까지 내려가서 내부의 어떤 파일을 다시 확인하지 않기 때문입니다. 이 도구는 git의 실제 .gitignore 매칭 알고리즘을 다시 구현했으며, 단순한 근사치가 아니라 바로 그 상황을 포함해 git이 지원하는 모든 패턴 규칙을 잡아내고 설명할 수 있도록 특별히 제작되었습니다.

한쪽 상자에 .gitignore 규칙을, 다른 쪽 상자에 `dist/index.js`, `node_modules/foo/bar.js`, `.env` 같은 파일 경로를 한 줄에 하나씩 넣으세요. 그러면 이 도구가 git과 똑같이 각 경로를 평가합니다. 주석과 빈 줄은 건너뛰고, 이스케이프되지 않은 후행 공백은 제거하고, 선행 `!`는 규칙을 부정하며, 선행 `/`는 루트에 앵커링하여 다른 깊이에서 매칭되는 것을 막고, 후행 `/`는 디렉터리로만 제한하며, `*`, `?`, `[abc]` 문자 클래스, 디렉터리 경계를 넘어 매칭되는 `**` 모두 문서화된 glob 규칙에 따라 작동합니다.

결정적으로 경로는 git의 자체 무시 엔진이 작동하는 방식 그대로 루트에서 아래로 디렉터리별로 검사됩니다. 전체 경로를 모든 규칙에 대해 개별적으로 테스트하는 방식이 아닙니다. 바로 그 점 덕분에 죽은 부정 규칙 사례를 정확히 탐지할 수 있습니다. 3번째 줄에서 `dist/`가 무시되고, 나중에 `!dist/keep.js`가 내부 파일 하나를 구조하려 해도 이 도구는 `dist/keep.js`를 여전히 무시된 것으로 보고하고, 그 이유로 3번째 줄 규칙을 지목하며, 그 부정 규칙이 가려졌음을 따로 알려줍니다. 결코 조용히 작동한 척하지 않습니다.

결과 표는 테스트된 모든 경로를 한 행씩 보여주며, 무시 여부를 명확하게 판정하고, 그 결정을 내린 정확한 규칙 텍스트와 줄 번호를 표시하며, 관련이 있을 때마다 가려진 부정 규칙이나 상속된 상위 디렉터리 규칙을 평이한 언어로 설명해 줍니다. 그것이 바로 혼란스러운 .gitignore를 커밋하기 전에 실제로 추론할 수 있는 상태로 바꿔주는 세부 사항입니다.