.gitignore 파일이란 무엇인가요?
.gitignore 파일은 Git 저장소 루트에 위치하는 일반 텍스트 파일입니다. Git이 의도적으로 추적하지 않아야 할 파일 및 패턴을 지정하여 빌드 산출물, 로컬 보안 비밀 키, 패키지 디렉터리, 시스템 임시 파일 등이 버전 관리에 커밋되는 것을 방지합니다.
전체 프로젝트 스택에 최적화된 깔끔하고 결정론적인 .gitignore 파일을 몇 초 만에 생성하세요. 공식 업스트림 규칙을 통합하고 중복을 제거하여, 추적 없이 프로덕션에 즉시 적용 가능한 설정을 복사하거나 다운로드할 수 있습니다.
무료 · 브라우저 완전 로컬 생성 · 계정 불필요
# Created by https://dotgitignore.com
# Edit at https://dotgitignore.com/generator?select=node,nextjs,docker,macos
### Node ###
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
### Next.js ###
.next/
out/
build/
dist/
### Environment Variables ###
.env
.env*.local
!.env.example
### Docker ###
.docker/
*.tar
### Operating System (macOS) ###
.DS_Store
.AppleDouble
.LSOverride검증된 제외 패턴과 규칙 구성이 포함된 주요 기술 템플릿을 확인하세요.
깔끔하고 결정론적인 버전 관리 파일을 필요로 하는 개발자를 위한 맞춤 설계:
중복 라인을 완벽하게 제거하면서 부정 규칙(!pattern)과 파일 순서를 온전히 유지합니다.
GitHub 공식 템플릿에 Vite, Astro, Svelte, Claude Code 등 최신 스택이 추가되었습니다.
100% 클라이언트 TypeScript 실행. 선택한 스택과 생성된 파일은 메모리에서만 처리되며 외부로 전송되지 않습니다.
군더더기 없는 개발자 중심 인터페이스로 다크 모드와 라이트 모드를 완벽하게 지원합니다.
Git 버전 관리에서 추적되지 않은 파일은 커밋 대상 후보가 됩니다. .gitignore 파일은 추적에서 제외할 파일, 디렉터리, 파일명 패턴을 Git에 지정하여 대용량 의존성 패키지, 비밀 자격 증명, 컴파일 빌드 산출물, 임시 캐시 파일이 실수로 커밋되는 것을 방지합니다.
.env, .env.local 및 개인 SSH 키와 같은 로컬 설정 파일은 보안 유출을 방지하기 위해 절대 커밋하지 마세요.
node_modules/, vendor/, 또는 Python 가상 환경(.venv/) 디렉터리는 저장소를 비대하게 만들므로 매니페스트로 관리해야 합니다.
dist/, target/, *.class, *.dll과 같은 컴파일러 임시 산출물은 소스에서 재생성 가능하므로 Git 히스토리에 포함되지 않아야 합니다.
현대 소프트웨어 개발 환경은 단일 도구에만 의존하지 않습니다. 풀스택 환경은 런타임(Node.js, Python), 프레임워크(Next.js, Spring Boot), 컨테이너(Docker), CI 도구, 그리고 macOS, Windows, Linux를 사용하는 개발자들의 다양한 에디터로 구성됩니다.
.gitignore 생성기를 사용하면 프로젝트에 쓰이는 모든 기술을 선택하여 즉시 프로덕션 수준의 단일 ignore 파일로 결합할 수 있습니다. 인터넷 블로그나 여러 저장소에서 파편화된 규칙을 복사해 붙여넣는 대신, DotGitIgnore는 결정론적으로 규칙을 병합하고 중복을 제거하여 정규화된 .gitignore를 제공합니다.
프로젝트에 .gitignore를 생성하고 적용하는 5단계 워크플로:
321개 이상의 엄선된 템플릿 중에서 프로젝트에 쓰이는 기술을 검색하거나 선택합니다.
실시간 뷰어에서 카테고리별 패턴 미리보기와 규칙 개수를 확인합니다.
복사 버튼을 눌러 클립보드에 담거나 다운로드 버튼으로 깨끗한 파일을 저장합니다.
저장한 파일을 프로젝트의 루트 디렉터리에 .gitignore라는 이름으로 배치합니다.
규칙 추가 전에 이미 커밋된 파일이 있다면 git rm --cached 명령으로 추적을 해제합니다.
인기 프로그래밍 언어와 프레임워크의 대표적인 제외 패턴:
node_modules/ dist/ npm-debug.log* .env .env.local
__pycache__/ *.py[cod] .venv/ dist/ *.egg-info/
target/ *.class *.jar *.war .sts4-cache/
[Ll]ibrary/ [Tt]emp/ [Oo]bj/ [Bb]uild/ *.csproj
.terraform/ *.tfstate *.tfstate.* crash.log override.tf
*.pid docker-compose.override.yml .docker/ *.tar
Git 패턴 매칭은 glob 스타일 문법을 사용하여 저장소 경로를 확인합니다:
# comment# 기호로 시작하는 줄은 주석으로 처리되어 Git에 의해 무시됩니다.
temp/끝에 붙는 슬래시는 동일한 이름의 파일이 아닌 디렉터리만을 대상으로 일치시킵니다.
*.log별표는 단일 경로 내에서 0개 이상의 문자와 일치합니다 (예: *.log).
/build앞에 붙는 슬래시는 .gitignore 파일이 위치한 루트 디렉터리에 패턴을 고정합니다.
**/logs이중 별표(**)는 저장소 전체 트리의 모든 깊이에 있는 디렉터리를 재귀적으로 일치시킵니다.
!important.log느낌표(!)는 패턴을 부정하여 이전에 무시되었던 파일을 다시 포함시킵니다.
Git 무시 패턴, 파일 위치, 올바른 워크플로에 대해 알아야 할 모든 것.
.gitignore 파일은 Git 저장소 루트에 위치하는 일반 텍스트 파일입니다. Git이 의도적으로 추적하지 않아야 할 파일 및 패턴을 지정하여 빌드 산출물, 로컬 보안 비밀 키, 패키지 디렉터리, 시스템 임시 파일 등이 버전 관리에 커밋되는 것을 방지합니다.
프로젝트의 최상위 루트 디렉터리(예: /my-project/.gitignore)에 배치합니다. 루트에 위치하면 전체 저장소의 모든 하위 폴더에 규칙이 재귀적으로 적용됩니다. 특정 하위 폴더에만 적용할 규칙이 있다면 해당 폴더에 추가 .gitignore를 둘 수도 있습니다.
네. 현대의 프로젝트는 거의 항상 여러 기술(예: Python + React + Docker + macOS + VS Code)을 함께 사용합니다. DotGitIgnore를 사용하면 필요한 모든 기술을 선택하여 중복을 자동으로 제거한 깔끔한 단일 파일을 생성할 수 있습니다.
디렉터리와 그 내부의 모든 항목을 제외하려면 .gitignore 파일에서 디렉터리 이름 뒤에 슬래시(/)를 붙입니다(예: node_modules/ 또는 build/). 슬래시가 없으면 동일한 이름의 파일과 디렉터리 모두에 일치하지만, 슬래시를 붙이면 디렉터리에만 엄격히 적용됩니다.
.gitignore에 경로를 추가하더라도 이전 커밋에서 이미 추적 중인 파일은 자동으로 제외되지 않습니다. 로컬 디스크의 원본 파일을 유지하면서 추적만 중단하려면 'git rm --cached <파일명>'(폴더는 'git rm -r --cached <폴더명>/')을 실행한 후 커밋하세요.
네. DotGitIgnore가 생성한 결과물은 표준 Git 설정 텍스트입니다. 다운로드 후 프로젝트 고유의 경로를 추가하거나, 로컬 환경 변수 파일명을 변경하거나, 에디터에서 자유롭게 커스터마이징할 수 있습니다.
저장소 루트에 .gitignore라는 이름의 파일을 만들고 제외할 상대 경로 규칙(dist/, .env, *.log 등)을 추가한 후 'git add .gitignore && git commit -m "Add .gitignore"'로 커밋합니다. 이후 해당 규칙과 일치하는 미추적 파일은 Git이 자동으로 무시합니다.
'git status'나 'git add .' 실행 시 Git은 아직 추적되지 않은 파일을 .gitignore 계층 구조의 패턴과 대조합니다. 패턴과 일치하고 이후의 '!' 부정 규칙으로 복원되지 않은 파일은 Git 인덱스 등록 대상에서 건너뜁니다.
임시 캐시, 컴파일된 바이너리, 서드파티 패키지, 운영체제 메타데이터(.DS_Store), 데이터베이스 비밀번호나 API 키 같은 민감한 정보가 실수로 원격 저장소에 푸시되는 것을 원천 차단하여 저장소를 안전하고 가볍게 유지합니다.
네. 거의 모든 경우에 .gitignore는 저장소에 커밋해야 팀 동료 및 CI/CD 환경에서도 일관된 무시 규칙을 공유할 수 있습니다. 개인 PC 고유의 에디터 설정 등은 .git/info/exclude나 전역(global) gitignore를 사용하는 것이 좋습니다.
가장 흔한 이유는 해당 파일이 '이미 Git에 의해 추적(커밋)되고 있기 때문'입니다. .gitignore는 새로 추가되는 미추적 파일에만 작용합니다. 'git rm --cached <파일명>'으로 캐시를 비우고 커밋하세요. 그 외에도 패턴 오타나 잘못된 슬래시 위치가 원인일 수 있습니다.
이미 커밋된 후라면 Git이 계속 추적하므로 아무런 변화가 없습니다. 첫 커밋 전에 추가하면 .gitignore 파일 자체가 제외되어 팀원들과 공유할 수 없게 됩니다. 실무에서는 .gitignore 자체를 제외하지 않습니다.
'git check-ignore -v <파일경로>' 명령어를 실행합니다. 제외 대상이라면 일치한 .gitignore 파일 경로, 줄 번호, 패턴이 출력됩니다. 또한 'git status --ignored'로 현재 무시되고 있는 전체 파일 목록을 확인할 수 있습니다.
첫 번째 커밋을 작성하기 전에 미리 생성할 것, 규칙을 논리적인 범주(의존성, 빌드 산출물, 로컬 보안 비밀 키)별로 구분할 것, 버전 관리에 포함하여 공유할 것 등입니다. DotGitIgnore를 이용하면 시작부터 중복 없는 검증된 규칙을 갖출 수 있습니다.
빌드 출력물(dist/, build/), 외부 의존성 폴더(node_modules/, vendor/), 환경 변수 파일(.env*), 컴파일된 바이너리(*.class, *.o), 실행 로그(*.log) 등을 포함합니다. 소스 코드 본문이나 재현 가능한 빌드에 필요한 lock 파일(package-lock.json 등)은 절대 제외하지 마세요.
네, 가능합니다. Git은 디렉터리 트리 전반에서 여러 .gitignore를 지원합니다. 하위 폴더의 파일은 해당 폴더 내에서 루트의 규칙보다 우선 적용되므로, 여러 언어가 공존하는 모노레포 환경에서 특히 유용합니다.
프로젝트 어디서든 해당 이름의 파일을 무시하려면 파일명만 적습니다(예: secret.txt). 루트 경로에 있는 파일만 한정하려면 앞에 슬래시를 붙입니다(예: /secret.txt). 하위 경로의 특정 파일이라면 루트 기준의 상대 경로를 작성합니다(config/credentials.json).
.env 및 .env.local 등을 .gitignore에 추가하여 API 키 유출을 방지합니다. 대신 실제 값 대신 더미 데이터가 적힌 .env.example 파일을 커밋하여 동료들이 필요한 환경 변수 목록을 확인할 수 있도록 구성하세요.
.gitignore는 버전 관리되어 프로젝트의 모든 참여자와 공유되므로 빌드 산출물이나 의존성에 적합합니다. 반면 .git/info/exclude는 로컬 PC의 .git 폴더 안에만 존재하여 푸시되지 않으므로 개인 전용 임시 도구 설정에 적합합니다.
!는 규칙의 부정(예외 재포함)을 뜻합니다. 앞서 제외된 파일 중 특정 파일만 다시 추적하도록 지정할 때 사용합니다(예: *.log 후 !important.log). 단, 상위 디렉터리 자체가 완전히 제외되어 있다면 그 하위 파일은 !로 복원할 수 없습니다.
-f(또는 --force) 옵션을 사용하여 'git add -f <파일경로>'를 실행합니다. 일단 커밋되면 .gitignore 규칙에 해당하더라도 'git rm --cached'로 추적을 해제하기 전까지는 계속 Git이 추적합니다.
공식 템플릿을 조합하고 중복 규칙을 제거하여 프로덕션 준비를 마친 Git ignore 설정을 단 몇 초 만에 완성하세요.