.gitignore 생성기

사용 중인 언어, 프레임워크, 편집기를 체크하여 .gitignore 파일을 생성합니다 — Node.js, Python, Java, macOS, Windows, VS Code 등 다양한 옵션을 지원하며, 중복 없이 정리되어 바로 다운로드할 수 있습니다.

조회수 233회

작동 방식

프로젝트에 해당하는 항목을 체크하세요 — Node.js, Python, Java 같은 언어나 런타임, macOS, Windows, Linux 같은 운영체제, VS Code나 IntelliJ/JetBrains 같은 편집기, 그리고 Git 자체의 잔여 파일과 .env·비밀 정보를 위한 별도 블록까지 선택할 수 있습니다. 체크박스 하나마다 커뮤니티가 실제로 사용하는 관례에서 가져온, 검증된 작은 무시(ignore) 패턴 묶음이 추가됩니다 — Node용 node_modules/, Python용 __pycache__/.venv/, Java용 *.classtarget/, macOS용 .DS_Store, Windows용 Thumbs.db 등입니다. 체크박스를 더 선택할수록 도구는 모든 패턴을 하나의 목록으로 병합하고 완전히 동일한 항목은 제거한 뒤, 결과를 텍스트 상자에 실시간으로 보여줍니다. 이 결과는 복사하거나 .gitignore라는 이름의 파일로 바로 다운로드할 수 있습니다.

카테고리를 처음부터 직접 작성하는 대신 조합하는 이유는, 실제 대부분의 프로젝트가 동시에 여러 카테고리에 걸쳐 있기 때문입니다. Mac에서 VS Code로 개발하는 Node.js API 프로젝트라면 빌드 산출물을 위한 Node 블록, .DS_Store가 pull request에 섞여 들어가지 않도록 하는 macOS 블록, 개인 편집기 설정이 팀원의 설정을 덮어쓰지 않도록 하는 VS Code 블록이 모두 필요합니다. 세 가지를 모두 체크하고 한 번에 다운로드하는 편이, 패턴을 기억에 의존해 직접 조합하거나 예전 프로젝트에서 조각을 복사해 붙이는 것보다 더 빠르고 실수도 적습니다.

알아두면 좋은 점

.gitignore 파일은 Git이 아직 알지 못하는 파일에만 영향을 미칩니다 — 즉 어떤 추적되지 않는(untracked) 파일을 git status, git add . 그리고 이후 커밋에서 제외할지를 Git에 알려줄 뿐입니다. 이미 추적 중인(한 번이라도 커밋된) 파일에는 아무런 효과가 없습니다. 이는 가장 흔한 오해입니다: 이미 커밋된 .env 파일을 나중에 .gitignore에 추가해도 저장소에서 제거되지 않으며, Git이 이후 변경 사항을 계속 추적하는 것도 막지 못합니다. 파일을 실제로 추적에서 제외하려면 먼저 git rm --cached <파일> 명령을 실행해야 하며(이는 Git의 인덱스에서만 제거하고 디스크에는 그대로 남깁니다), 이 제거 작업을 커밋해야 비로소 해당 .gitignore 규칙이 이후부터 적용됩니다.

여기서 제공하는 패턴 대부분은 언어별·도구별 템플릿의 가장 널리 참조되는 출처인 GitHub의 공식 github/gitignore 저장소를 기반으로 하며, 이는 GitHub가 웹 UI에서 새 저장소를 만들 때 직접 제공하는 것과 동일한 모음입니다. node_modules/와 같은 의존성 폴더나 dist/, target/ 같은 빌드 결과물을 버전 관리에서 제외하는 것은 용량 면에서 중요합니다 — 이런 폴더는 실제 소스 코드보다 몇 배나 커질 수 있으면서도 잠금 파일(lockfile)이나 빌드 스크립트로 손쉽게 다시 생성할 수 있기 때문입니다. 반면 .env, *.pem, *.key 같은 파일을 제외하는 것은 보안 면에서 중요합니다: 비밀 정보를 Git 기록에 커밋하면 사실상 영원히 공개되는 것과 같습니다. 최신 커밋에서 삭제해도 기록 전체를 다시 작성하지 않는 한 이전 커밋에서는 지워지지 않기 때문입니다.

자주 묻는 질문

.gitignore에 파일을 추가했는데 Git이 여전히 추적하고 있어요 — 왜 그런가요?

.gitignore는 Git이 아직 알지 못하는 파일의 추적만 막습니다. 규칙을 추가하기 전에 이미 커밋된 파일이라면, .gitignore에 뭐라고 적혀 있든 Git은 계속 추적합니다. git rm --cached <파일> (폴더라면 git rm -r --cached <폴더>)을 실행한 뒤 그 변경 사항을 커밋하면 해결됩니다 — 그 시점부터 .gitignore 규칙이 적용됩니다.

Node.js, macOS, VS Code처럼 여러 카테고리를 함께 선택할 수 있나요?

네 — 그것이 일반적인 사용 방식입니다. 설정에 해당하는 모든 항목을 체크하면 도구가 결과로 나온 모든 패턴을 하나의 목록으로 병합하고, 완전히 동일한 항목은 제거하여 같은 줄이 두 번 나타나지 않도록 합니다.

이 무시 패턴은 어디서 가져온 건가요?

대부분의 도구와 튜토리얼이 표준 참조로 삼는 GitHub 공식 github/gitignore 템플릿 저장소와 동일한 관례를 따릅니다. 이는 저장소를 만들 때 GitHub의 "Add .gitignore" 옵션으로 템플릿을 생성했을 때 얻는 것과 동일한 파일/폴더 패턴입니다.

node_modules/나 .env는 왜 절대 커밋하면 안 되나요?

node_modules/는 package.json/package-lock.json으로부터 몇 초 만에 다시 생성할 수 있는 의존성 캐시입니다 — 이를 커밋하면 수 메가바이트(때로는 기가바이트)에 달하는 불필요한 파일로 저장소가 부풀어 오릅니다. .env는 다릅니다: 보통 API 키, 데이터베이스 비밀번호 등 비밀 정보를 담고 있으며, 한 번이라도 Git 기록에 들어가면 유출된 것으로 간주해야 합니다. 최신 커밋에서 삭제해도 이전 커밋에서는 제거되지 않기 때문이며, 기록을 다시 작성하고(비밀 정보도 교체) 해야만 실제로 해결됩니다.

다운로드한 파일의 이름을 바꿔야 하나요?

아니요. 다운로드 버튼은 Git이 기대하는 정확한 이름 — 앞에 점이 붙고 확장자가 없는 .gitignore — 으로 파일을 저장하므로, 첫 커밋 전에 프로젝트 루트 폴더에 바로 넣으면 됩니다.

댓글

아직 댓글이 없습니다 — 첫 댓글을 남겨보세요!

비슷한 도구