Gitignore 생성기

github/gitignore 공식 템플릿 200+개에서 언어, 프레임워크, IDE, OS를 선택해 중복 제거 후 병합한 .gitignore를 복사 또는 다운로드. 브라우저에서 처리.

  • 브라우저에서 처리
  • 데이터가 브라우저 밖으로 나가지 않습니다
  • 무료 · 회원가입 불필요
모두 지우기는 선택 템플릿, 사용자 규칙, 검색과 이 도구의 저장 입력을 지웁니다. 도구 안에 포커스가 있으면 Ctrl/⌘+L도 같은 동작을 합니다.
병합 파일 전체를 복사합니다. 템플릿이나 공백이 아닌 사용자 규칙으로 출력이 생겨야 활성화되며, 실패 후 바로 다시 시도할 수 있습니다.
현재 파일 전체를 UTF-8 텍스트 .gitignore로 다운로드합니다. 템플릿은 로컬에 포함되어 있으며 이 동작으로 가져오거나 업로드하지 않습니다.
.gitignore
위에서 하나 이상의 템플릿을 선택하면 병합된 .gitignore가 여기 표시됩니다.
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.

.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 문법은 안정적이라 기존 템플릿이 호환성을 깨는 일은 거의 없습니다.