Gitignore 생성기
github/gitignore 공식 템플릿 200+개에서 언어, 프레임워크, IDE, OS를 선택해 중복 제거 후 병합한 .gitignore를 복사 또는 다운로드. 브라우저에서 처리.
- 브라우저에서 처리
- 데이터가 브라우저 밖으로 나가지 않습니다
- 무료 · 회원가입 불필요
WeChat으로 스캔하여 공유
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.
.gitignore 파일이란?
.gitignore는 Git이 스테이징 시 무시해야 할 패턴을 나열하는 파일입니다 — 일반적으로 빌드 산출물, OS 메타데이터, IDE 캐시, 의존성 디렉터리, 시크릿이 포함됩니다. 패턴은 gitignore glob 문법(*.log, build/, !keep-this.log)을 따르며 디렉터리별로 적용됩니다. 모든 Git 저장소는 클론의 재현성을 보장하고 환경 고유 노이즈 누출을 막기 위해 하나씩 포함해야 합니다.
일반적인 Stack 조합
- 풀스택 JavaScript: Node + Nextjs + macOS + JetBrains
- Python 데이터 프로젝트: Python + macOS + VisualStudioCode
- 모바일 네이티브: Android + Java + Gradle + JetBrains + macOS
- 정적 사이트: Node + Jekyll + macOS + VisualStudioCode
- Go 서비스: Go + macOS + VisualStudioCode + JetBrains
병합 방식
선택된 템플릿은 알파벳순으로 정렬되어 연결됩니다. 각 템플릿에는 ### Name.gitignore 헤더가 추가되어 어떤 규칙이 어디서 왔는지 추적할 수 있습니다. 템플릿 간 동일한 규칙 줄은 첫 출현 이후 버려지지만, 주석과 빈 줄은 그대로 유지됩니다. 사용자 정의 규칙은 마지막에 ### Custom additions 섹션으로 배치됩니다. 출력은 ZeroTool과 github/gitignore 출처를 가리키는 어트리뷰션 헤더로 시작합니다 — 깔끔한 파일을 원한다면 자유롭게 제거하세요.
왜 큐레이션된 번들인가
요청 시점에 github/gitignore를 크롤링하면 네트워크 지연과 레이트 제한 노출이 늘어납니다. 대신 빌드 시점에 저장소 스냅샷을 찍어 ID를 중복 제거하고 단일 TypeScript 모듈로 함께 배포합니다 — 예측 가능하고 감사 가능하며 런타임 의존성이 없습니다. 갱신은 동기화 스크립트를 수동 실행해 상위에서 새 스냅샷을 가져와 한 번의 커밋으로 교체합니다.
예시: Node + macOS + JetBrains + VS Code
JetBrains, macOS, Node, VisualStudioCode를 선택하고 사용자 규칙에 node_modules/, .env.local, coverage-html/ 세 줄을 넣습니다. 출력은 313줄이며 출처 헤더, 알파벳순 4개 템플릿(첫 번째는 ### JetBrains.gitignore), 마지막 ### Custom additions 순서입니다. 마지막 블록에는 .env.local과 coverage-html/만 남습니다. 사용자 규칙의 node_modules/는 Node 템플릿에 똑같은 줄이 있어서 제거되었습니다.
.env.local은 Node 템플릿의 .env.*가 이미 일치하는데도 남아 있습니다. 중복 판정은 각 줄의 앞뒤 공백을 뺀 텍스트로 하며, 패턴이 일치하는 범위는 비교하지 않습니다.
문법 함정 (Git으로 확인)
아래 .gitignore에 대한 git check-ignore -v(Git 2.56) 결과입니다.
logs/
!logs/keep.log
docs/*.pdf
build/
/secret.txt
logs/keep.log는 여전히logs/에 의해 무시됩니다. Git은 제외된 디렉터리 안을 보지 않으므로 부정 규칙이 적용되지 않습니다(gitignore 문서). 예외가 필요하면logs/대신logs/*를 쓰세요.docs/*.pdf는docs/a.pdf는 무시하지만docs/notes/old.pdf는 무시하지 않습니다. 중간에 슬래시가 있는 패턴은.gitignore가 있는 디렉터리를 기준으로 하고,*는/를 넘지 않습니다.build/는 어느 깊이에서든(build/,src/build/) 일치하지만 디렉터리에만 해당합니다./secret.txt는 루트의 파일에만 일치하며src/secret.txt는 무시되지 않습니다.
이미 추적 중인 파일
규칙을 추가해도 이미 추적 중인 파일은 추적에서 빠지지 않습니다. 인덱스에서 제거하고 커밋하세요. 파일은 디스크에 그대로 남습니다.
git rm -r --cached node_modules/
git commit -m "Stop tracking node_modules"
이전 커밋에서는 지워지지 않습니다. 비밀 값을 커밋했다면 먼저 그 값을 폐기하고, 기록을 다시 쓰려면(git filter-repo 등) 강제 푸시와 모두의 재클론이 필요합니다.
제한
- 내장 템플릿은 237개입니다. github/gitignore 루트(언어·프레임워크)에서 162개,
Global/(에디터, OS, 도구)에서 75개이며community/는 포함하지 않습니다. - 템플릿은 내장 데이터를 마지막으로 갱신한 시점의 스냅샷입니다. 그 뒤 업스트림에 반영된 변경은 다음 갱신 전까지 나타나지 않습니다.
- 중복 제거는 파일 전체에서 같은 줄만 지우며,
node_modules와node_modules/같은 동등한 표기는 합치지 않습니다.
FAQ
템플릿은 어디서 오나요?
모든 템플릿은 공식 github/gitignore 저장소(CC0-1.0)에서 가져옵니다. 저장소 루트(프로그래밍 언어와 프레임워크)와 Global/ 하위 디렉터리(IDE, OS, 에디터, 빌드 도구)를 번들로 포함합니다. community/ 하위 디렉터리는 품질 일관성을 위해 의도적으로 제외했습니다.
여러 템플릿을 선택할 때 중복 규칙은 어떻게 처리되나요?
각 규칙 줄을 정규화(공백 제거)한 후 선택된 모든 템플릿에 걸쳐 중복을 제거합니다. 첫 번째 등장이 살아남고 이후 중복은 조용히 버려집니다. 주석과 빈 줄은 유지되어 각 섹션의 출처를 읽을 수 있도록 합니다.
내 규칙을 추가할 수 있나요?
가능합니다. 템플릿 아래의 '사용자 정의 규칙 추가' 섹션을 펼치고 프로젝트 고유 경로나 glob을 입력하세요. ### Custom additions 섹션으로 마지막에 추가되며 같은 중복 제거 패스에 참여합니다.
gitignore.io와 무엇이 다른가요?
동일한 상위 데이터(github/gitignore)를 사용합니다. 차이점: 4개 언어 현지화 UI(English / 中文 / 日本語 / 한국어), 출처 주석이 포함된 라이브 미리보기, 완전 클라이언트사이드 실행(데이터가 브라우저를 떠나지 않음), 오프라인에서도 동작하는 번들 템플릿.
템플릿은 얼마나 자주 갱신되나요?
수동 동기화 스크립트로 상위에서 새 스냅샷을 가져와 커밋합니다. 상위는 한 달에 몇 번 정도 변경되므로 정기적으로 갱신하면 충분합니다. gitignore 문법은 안정적이라 기존 템플릿이 호환성을 깨는 일은 거의 없습니다.