경로와 제외 규칙

gitignore 테스터판정 이력까지 확인

루트 .gitignore 하나와 후보 경로를 테스트합니다. 디렉터리는 끝에 /를 붙이세요.

gitignore 테스터

.gitignore 규칙

후보 경로

규칙과 후보 문자열은 이 브라우저에서 처리하며 저장소를 읽거나 변경하지 않습니다.

경로 결과

후보 경로를 하나 이상 입력하세요.

경로 입력 방식과 범위

이 .gitignore 기준의 상대 경로를 /로 구분하고 디렉터리는 /로 끝내세요. 절대 경로, 드라이브 접두사, 역슬래시, 빈 구간, . 및 ..는 거부합니다. 공백은 보존합니다.

루트 .gitignore 하나로 미추적 경로를 시뮬레이션합니다. 대소문자를 구분하는 UTF-8 바이트 매칭이며 하위 규칙, 전역 제외, 인덱스, 파일 시스템은 읽지 않습니다.

물리적 규칙 50줄과 비어 있지 않은 후보 200줄까지. 규칙당 256자, 경로당 512자, 최대 32구간. 제어 문자는 거부하며 워커는 2초 후 종료합니다.

결과가 만료되었거나 계산 중입니다.

gitignore 테스터는 예외로 지정한 파일이 돌아오지 않는 이유를 찾는 데 도움이 됩니다. 파일 이름이 정확해도 상위 디렉터리가 제외되면 Git은 그 안으로 들어가지 않습니다. 결과에서 실제로 경로를 막은 디렉터리와 규칙 줄을 함께 확인할 수 있습니다.

gitignore 규칙을 바꾸기 전에 남겨야 할 파일도 경로 목록에 넣으세요. 마지막 결과만 보면 놓치기 쉬운 순서 변화가 각 줄까지의 누적 이력에 드러납니다. 아무 규칙에도 해당하지 않은 후보 역시 결과에 남습니다.

gitignore 테스터로 예외가 실패한 이유 확인

디렉터리 제외와 내용 제외 구분

build/는 디렉터리 자체를 막으므로 !build/keep.txt로 파일을 복구할 수 없습니다. cache/*는 cache/를 열어 둔 채 내용만 제외하여 !cache/keep.txt가 작동합니다. gitignore 테스터는 부정 규칙을 무조건 성공으로 처리하지 않고 막힌 상위 경로를 표시합니다.

닫힌 상위 폴더가 모든 하위 파일을 막고, 열린 폴더에서는 예외 파일 하나가 통과하는 모습.

뒤의 규칙이 판정을 바꿨는지 확인

무시, 다시 포함, 다시 무시하는 세 줄은 같은 파일의 상태를 여러 번 바꿀 수 있습니다. 이력에는 주석과 빈 줄을 포함해 각 물리적 줄을 추가한 뒤의 결과가 나옵니다. 결정한 줄이 이전과 같다면 새로 넣은 줄이 그 단계의 결정 규칙이라는 뜻은 아닙니다.

파일이 세 관문을 차례로 지나며 제외, 포함, 제외 상태로 바뀌는 모습.

경로 문제를 재현하는 세 가지 확인

01

경로 기준과 유형을 먼저 지정

이 .gitignore가 있는 디렉터리를 기준으로 상대 경로를 적으세요. build/는 디렉터리이고 build는 파일입니다. 규칙의 맨 앞 /는 기준 위치에 고정하지만 후보 경로의 맨 앞 /는 허용하지 않습니다. 파일 이름의 공백은 그대로 비교합니다.

02

막힌 상위 디렉터리부터 확인

경로 아래의 이력을 열어 제외된 상위 경로를 살펴보세요. 부모를 먼저 다시 포함하거나 cache/*처럼 내용만 제외하면 됩니다. 각 단계는 그때까지의 규칙 전체를 다시 적용한 결과이며, 해당 줄과 후보가 직접 일치했다는 기록은 아닙니다.

03

비교할 때는 자동 실행을 잠시 중지

자동 테스트는 편집 후 350밀리초 기다립니다. 끄면 테스트 버튼이나 Ctrl/Cmd+Enter로 실행할 수 있습니다. 편집 즉시 이전 보고서는 만료됩니다. 예제와 비우기는 미리 보기 후 적용하고, 실행 취소로 입력과 결과를 함께 복원합니다.

규칙에서 설명 가능한 결과까지

Git 형식 패턴 평가

ignore 7.0.9의 공개 API로 *, ?, 문자 범위, **를 처리합니다. 대소문자를 구분하며 UTF-8 바이트 단위로 비교하므로 ? 하나가 한글 한 글자를 나타내지는 않습니다. 중괄호 확장이나 정규식을 별도 매칭 모드로 지원하지 않습니다.

원본 줄 번호 유지

주석과 빈 줄을 없애 번호를 다시 매기지 않습니다. 접근 가능한 각 경로에서는 마지막으로 일치한 규칙이 제외 또는 재포함을 결정합니다. 같은 긍정 규칙을 반복해도 첫 줄이 아닌 마지막 일치 줄을 보여 주며, 부모에서 이어진 제외 상태도 구분합니다.

이력과 요약을 목적에 맞게 내보내기

JSON은 원본 경로와 규칙, 모든 누적 판정 단계를 담습니다. TSV는 디렉터리 여부, 무시 여부, 결정 줄, 규칙, 막힌 부모를 요약합니다. 수식처럼 보이는 셀에는 보호용 작은따옴표를 붙입니다. 화면에 50개만 보여도 내보내기에는 후보 전체가 포함됩니다.

실제 저장소와 비교할 때 알아둘 범위

단일 규칙 파일과 미추적 경로
gitignore 테스터는 루트의 규칙 파일 하나를 가정합니다. 하위 .gitignore, .git/info/exclude, 전역 파일, 명령줄 패턴을 합치지 않습니다. 인덱스를 읽지 않아 실제 추적 여부, 파일 존재, 심볼릭 링크 여부를 알 수 없습니다.
후보 문자열을 임의로 고치지 않음
/로 구분한 상대 경로를 쓰고 디렉터리에는 끝 /를 붙이세요. 절대 경로, Windows 형식, . 및 .. 구간, 제어 문자, 잘못된 Unicode는 거부합니다. 빈 줄은 건너뛰지만 공백만 있는 줄은 이름입니다. 규칙 앞의 #와 !를 문자로 쓰려면 이스케이프해야 합니다.
입력과 실행 시간 제한
규칙은 물리적 50줄, 후보는 비어 있지 않은 200줄까지입니다. 규칙 하나는 256, 경로 하나는 512 UTF-16 코드 단위이며 경로는 32구간까지입니다. 마지막 줄바꿈 하나는 추가 규칙 줄이 아닙니다. 작업이 2초를 넘으면 워커를 종료하고 실패하거나 오래된 결과는 내보낼 수 없습니다.
저장소 고유 설정은 Git으로 검증
대소문자 구분은 고정이며 모든 Git 명령과 설정을 재현하지 않습니다. 실제 저장소에서 git check-ignore -v로 규칙의 출처를 확인하세요. 현재 후보와 일치하지 않는 규칙이 다른 파일에는 필요할 수 있으므로 자동으로 불필요하다고 판단하거나 삭제하지 않습니다. 연속 별표는 독립된 경로 구간인 **만 지원합니다. *** 또는 a**는 이 도구의 범위 밖이므로 거부하며, Git 자체에서 무효라는 뜻은 아닙니다.

gitignore 테스터 자주 묻는 질문

! 패턴을 추가해도 파일이 돌아오지 않는 이유는 무엇인가요?

상위 디렉터리가 제외되면 Git은 하위 파일에 접근하지 않습니다. 파일의 예외 규칙만으로 부모를 열 수 없습니다. 부모를 먼저 다시 포함하거나 build/*로 내용만 제외한 뒤 예외를 추가하세요. gitignore 테스터는 결과에 막힌 부모 경로를 표시합니다.

build와 /build는 어떻게 다른가요?

build는 모든 깊이에서 같은 이름과 일치하고, /build는 이 .gitignore가 있는 위치에 고정됩니다. 규칙 중간에 /가 있어도 기준 위치에 상대적으로 적용합니다. build와 src/build를 함께 테스트하면 차이를 확인할 수 있습니다.

logs/가 같은 이름의 일반 파일도 무시하나요?

아니요. 마지막 /는 디렉터리에만 적용한다는 뜻입니다. 후보 logs/는 디렉터리, logs는 일반 파일로 검사합니다. 브라우저가 파일 시스템을 읽거나 다른 후보를 보고 유형을 추측하지 않으므로 직접 표시해야 합니다.

**를 쓰는 세 가지 방식은 무슨 뜻인가요?

앞의 **/는 모든 깊이, 뒤의 /**는 하위 항목, a/**/b는 a와 b 사이의 0개 이상 디렉터리를 뜻합니다. 단일 *와 ?는 /를 넘지 않습니다. UTF-8 바이트 단위로 일치시키므로 ?는 여러 바이트로 된 문자 전체를 나타내지 않습니다.

규칙이 맞아도 Git이 변경 사항을 표시하는 이유는 무엇인가요?

이미 추적하는 파일에 .gitignore 규칙을 추가해도 추적 상태가 바뀌지 않습니다. 이 도구는 인덱스 정보 없이 후보를 미추적 경로로 평가합니다. 실제 저장소에서 추적 상태를 먼저 확인한 후 git status와 결과가 다른 이유를 판단하세요.

추가로 확인할 경로 사례가 있나요?

다음 규칙 변경을 먼저 확인하세요

gitignore 테스터에 무시해야 할 경로와 남겨야 할 경로를 함께 넣으세요. 예외가 작동하지 않는다면 상위 디렉터리 자체도 후보로 추가하세요.

검토용 보고서를 저장한 뒤 실제 규칙을 바꾸기 전에 저장소의 Git으로 최종 확인하세요.