Menu

.gitignore 생성기

언어·프레임워크·IDE·OS로 깔끔한 .gitignore를 빌드.

마지막 업데이트

퀵 스택
템플릿 선택2 선택됨

언어

프레임워크

에디터와 IDE

운영체제

.gitignore · 37
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-store/
.npm
.yarn-integrity

# Coverage
coverage/
*.lcov
.nyc_output

# Build output
dist/
build/

# Environment
.env
.env.local
.env.*.local

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

.gitignore 생성기란?

모든 Git 리포지토리는 .gitignore가 필요합니다. Git이 **추적하지 말아야** 할 경로의 평문 목록 — 빌드 산출물, 의존성 폴더, IDE 설정, .DS_Store 같은 OS 잡동사니. 없으면 첫 커밋이 실수로 node_modules/, .env, target/를 끌어들이고, 그 난장판을 되돌리는 일은 처음부터 파일을 제대로 두는 것보다 훨씬 귀찮습니다.

생태계마다 무시할 것이 다르고 대부분의 프로젝트가 여러 개를 동시에 걸칩니다. macOS 노트북에서 VS Code로 개발하는 전형적인 Node + TypeScript 앱은 이미 네 가지 ignore 목록의 합집합이 필요. 머릿속으로 적으면 coverage/를 빠뜨리고, .env를 흘리고, 팀원의 JetBrains에서 비롯된 .idea/를 끼워 넣게 됩니다.

그래서 이 생성기는 표준적인 github/gitignore 프로젝트(GitHub 공식 자동 제안의 같은 소스)에서 큐레이션한 템플릿을 번들로 묶고, 쌓아 사용할 수 있게 했습니다. 해당하는 칸을 체크하면, 도구가 중복 제거된 단일 .gitignore를 내놓고, 그대로 리포에 붙여 넣을 수 있습니다. 계정 없음, 업로드 없음, 전부 브라우저에서.

.gitignore를 만들며 배우는 것

  • .gitignore 패턴은 glob 문법: *.log는 모든 로그 무시, build/는 폴더 무시, !important.log는 glob에 매치되어도 특정 파일을 재포함.
  • 패턴은 .gitignore 파일의 위치를 기준으로 적용 — src/ 안의 .gitignoresrc/ 아래의 파일만 영향.
  • 이미 추적 중인 파일은 **소급해서 무시되지 않음**. node_modules/를 커밋한 후 .gitignore에 추가했어도 git rm -r --cached node_modules로 추적 해제해야 함.

.gitignore를 단계별로 생성

  1. 퀵 스택 프리셋 선택 (선택)

    프로젝트가 흔한 조합 — Next.js, Django, Rails — 에 맞으면 프리셋을 클릭해 관련 칸을 한 번에 체크. 그다음 필요한 것을 더하거나 빼라.

  2. 언어 추가

    언어마다 무시할 산출물이 있다: Node는 node_modules/, Python은 __pycache__/와 virtualenv, Java는 target/.class. 프로젝트가 실제로 컴파일하는 언어를 선택.

  3. 프레임워크 추가

    언어 규칙 위에 프레임워크가 자체 빌드 디렉터리를 더한다: Next.js는 .next/.vercel, Django는 staticfiles/db.sqlite3, Rails는 tmp//storage/*. 사용하는 프레임워크를 체크.

  4. 에디터와 OS 추가

    본인만이 아니라 **팀**이 쓰는 에디터 템플릿을 추가 — 누군가 JetBrains/Vim을 쓰면 포함. 다음으로 팀의 OS: macOS는 .DS_Store, Windows는 Thumbs.db를 떨궈서 둘 다 실수로 커밋되기 쉬움.

  5. 복사 또는 다운로드

    오른쪽 패널이 결합·중복 제거된 출력을 보여줌. **복사**로 리포 루트의 .gitignore에 바로 붙이거나, **다운로드**로 파일을 직접 저장.

.gitignore 문법 — 빠른 참조

가장 자주 쓰는 패턴들. 전체 레퍼런스: git-scm.com/docs/gitignore.

패턴의미예시
node_modules트리 어디서든 이 이름과 정확히 일치하는 파일/폴더 무시/node_modulessrc/node_modules 모두 캡처
node_modules/끝의 슬래시 — **폴더**만 매치, 동명 파일은 매치 안 됨실수로 node_modules로 명명된 파일은 캡처 안 함
/build앞의 슬래시 — .gitignore가 있는 디렉터리에만 고정/build는 매치, src/build는 매치 안 됨
*.logGlob — .log로 끝나는 어떤 파일이든 매치error.log, debug.log, logs/foo.log 캡처
!important.log부정 — 앞선 규칙으로 매치된 특정 파일을 재포함*.log와 결합해 로그 하나를 계속 추적
docs/**/draft이중 별표 — docs/의 어떤 하위 폴더든 draft 매치docs/v1/draftdocs/2025/q1/draft 캡처
# comment주석 — #로 시작하는 줄은 Git이 무시# Node.js처럼 섹션 헤더로 규칙 그룹화

시도해 볼 .gitignore 예시

최소 Node.js + macOS .gitignore

Mac에서 모든 Node 프로젝트가 필요한 것

# Node.js node_modules/ npm-debug.log* dist/ .env .env.local # macOS .DS_Store ._*

macOS의 팀원과 공유되는 모든 Node 프로젝트의 최소치. 작은 사이드 프로젝트라도 이 규칙들은 있어야 — .DS_Storenode_modules/가 없으면 의미 없는 충돌과 싸우게 된다.

Python + Django + JetBrains

일반적인 서버사이드 Python 스택

# Python __pycache__/ *.py[cod] .venv .pytest_cache/ # Django *.log local_settings.py db.sqlite3 media/ staticfiles/ # JetBrains .idea/ *.iml

PyCharm에서 개발되는 전형적인 Django 백엔드. 로컬 db.sqlite3이 무시되는 점에 주목 — 프로덕션은 사용 안 함, 커밋하면 dev 데이터가 새고 동료의 새 클론이 깨진다.

부정으로 규칙 덮어쓰기

하나만 빼고 모든 로그 무시

*.log !keep-me.log

첫 줄이 모든 .log 무시. !keep-me.log 규칙이 그 특정 파일을 재포함. 부정은 앞선 규칙이 실제로 무시한 파일에만 동작 — 무시된 폴더 내부의 파일은 재포함 못 함.

.gitignore의 흔한 실수

  • .gitignore를 나중에 추가하고 커밋된 파일이 사라지길 기대. 사라지지 않음 — 추적 해제하려면 git rm -r --cached <경로> 필요.
  • .env를 한 번이라도 커밋. 단 한 번의 커밋이 시크릿을 영원히 히스토리에 남긴다. 첫 커밋 **전에** .env*.gitignore에 추가하고, 새 나간 시크릿은 회전.
  • 공유 리포에서 OS 노이즈 망각. 팀에 macOS 사용자가 한 명이라도 있고 리포에 .DS_Store 규칙이 없으면, 그 파일들이 모든 PR 디프에 등장.

.gitignore 생성기 FAQ

이 .gitignore 템플릿은 어디서?
템플릿은 오픈소스 github/gitignore 프로젝트에서 응축 — 새 리포를 만들 때 "add .gitignore"를 체크하면 GitHub가 사용하는 같은 소스. 각 템플릿을 팀이 실제 필요한 규칙으로 다듬고 카테고리별로 그룹화.
.gitignore 파일 자체를 커밋?
네. .gitignore는 버전 관리되고 팀과 공유되도록 설계됨. 무엇을 추적하고 무엇을 안 할지의 *계약*. 예외는 개인 선호(예: 본인 에디터) — 그건 글로벌 ~/.gitignore_global에.
이미 커밋된 파일을 추적 해제하려면?
먼저 .gitignore에 추가하고, 그 다음 git rm --cached <경로>(또는 git rm -r --cached <폴더>)로 디스크에서 삭제하지 않고 인덱스에서 제거. 두 변경을 함께 커밋해 팀이 업데이트를 보게 하라.
한 리포에 여러 .gitignore를 둘 수 있나?
네. Git은 각 디렉터리에서 .gitignore를 찾아 해당 서브트리에 규칙을 적용. 프론트와 백의 ignore 규칙이 매우 다른 모노레포에 유용 — 공유 OS/에디터 노이즈는 루트에, 언어 규칙은 각 패키지 디렉터리에.
.gitignore와 .git/info/exclude의 차이는?
.gitignore는 커밋되고 팀과 공유. .git/info/exclude는 로컬 클론에만 있고 푸시하고 싶지 않은 개인 제외에 사용. 모든 리포에 걸친 제외는 글로벌 ~/.gitignore_global 사용.

다른 개발자 도구

Coddy programming languages illustration

Coddy로 코딩 배우기

시작하기