# .gitignore
# .gitignore 설정
---
## 1. `.gitignore`란?
- `.gitignore`는 Git이 ****추적하지 않을 파일/폴더****를 명시하는 설정 파일이다.
- 주로 아래와 같은 파일들을 제외할 때 사용한다:
- OS/IDE 생성 파일 (`.DS_Store`, `Thumbs.db`, `.vscode/`)
- 로그, 빌드 결과물 (`*.log`, `dist/`, `build/`)
- 민감 정보 (`.env`, `*.pem`, `secret.txt`)
- 의존성 디렉토리 (`node_modules/`, `vendor/`)
---
## 2. 작성 위치
- `.gitignore` 파일은 ****저장소 루트 경로****에 위치한다.
- 하위 폴더에 별도로 둘 수도 있으나, 일반적으로 루트에 하나만 둠.
---
## 3. 패턴 작성법
### 3.1 기본 규칙
패턴
| 설명
|
---|
`*.log`
| `.log` 확장자 파일 전체 무시
|
`build/`
| `build` 디렉토리 무시
|
`/secret.txt`
| 루트 경로의 `secret.txt`만 무시
|
`*.pem`
| `.pem` 인증서 파일 전체 무시
|
`!.gitignore`
| `.gitignore` 파일은 무시하지 않음
|
---
### 3.2 주석 사용
```gitignore
# 로그 파일 무시
*.log
```
---
### 3.3 제외 항목 설정
```gitignore
# 모든 .env 파일은 무시
*.env
# 단, .env.example은 추적
!.env.example
```
---
## 4. 자주 사용하는 .gitignore 예시
### 4.1 Node.js
```gitignore
node_modules/
npm-debug.log
.env
dist/
```
### 4.2 Python
```gitignore
__pycache__/
*.py[cod]
.env
*.sqlite3
```
### 4.3 Java (IntelliJ 포함)
```gitignore
*.class
*.jar
*.war
*.log
target/
.idea/
*.iml
```
---
## 5. 이미 추적 중인 파일 무시하기
> `.gitignore`에 추가했지만 이미 추적 중인 파일은 무시되지 않는다.
### 5.1 캐시 삭제 후 반영
```bash
git rm --cached 파일명
```
또는 전체 캐시 삭제:
```bash
git rm -r --cached .
git add .
git commit -m "Update .gitignore rules"
```
---
## 6. .gitignore 생성 도구 추천
- [https://www.toptal.com/developers/gitignore](#bkmrk--10)
→ 언어/프레임워크/IDE 선택만 하면 자동 생성
---
## ✅ 참고 팁
- `.gitignore`는 ****로컬에서만 적용되는 규칙****이며, Git이 실제로 ****commit할 파일을 결정****하는 기준이다.
- 회사/협업 프로젝트는 공통된 `.gitignore` 템플릿을 맞춰야 충돌 예방 가능
- `.git/info/exclude`를 사용하면 ****개인용 ignore 설정****도 가능 (공유 안 됨)
---