NakedFlower 님의 블로그

gitignore에 대하여 본문

Git

gitignore에 대하여

nakedflower 2025. 10. 18. 19:45

.gitignore 파일

Git이 특정 파일을 추적하지 않도록 설정하는 파일이다.


Git은 기본적으로 모든 파일을 추적하지만, 빌드 결과물, 환경 설정 파일, 캐시 파일 등 추적할 필요가 없는 파일들이 존재한다. .gitignore 파일을 사용하면 이러한 불필요한 파일이 Git의 변경 사항 추적에 포함되지 않도록 설정할 수 있다. 이를 통해 저장소를 깔끔하게 유지하고, 불필요한 충돌을 방지할 수 있다.

 

파일은 프로젝트 루트 디렉터리에 생성하며, 무시할 파일 또는 디렉터리의 패턴을 한 줄씩 작성한다. 아래는 기본적인 작성 예제와 패턴을 설명한다.

 

기본적인 예제

# 로그 파일 제외
logs/
*.log

# 빌드 결과물 제외
/build/
*.o
*.class

# 환경 설정 파일 제외
.env
config/local.json

 

자주 사용하는 .gitignore 패턴

특정 파일 확장자 제외

특정 디렉터리 제외

특정 파일 포함 예외 - !를 사용해 특정 파일을 예외적으로 추적할 수 있다. 

globstar 패턴 (**) 사용법

# 모든 경로의 __pycache__ 디렉터리 무시
**/__pycache__/

# 루트의 __pycache__만 무시 (하위 디렉터리는 제외)
__pycache__/

# 모든 경로의 .pyc 파일 무시
**/*.pyc

 

실전 적용 예시

우리는 연구자가 아니라 공부해서 써먹는 사람들이니 이  부분이 제일 중요할 것이다.  

언어별 .gitignore 템플릿

Python 프로젝트

# Python 캐시 파일
**/__pycache__/
*.py[cod]
*$py.class

# 가상 환경
venv/
env/
.venv/

# 패키지 관리
*.egg-info/
dist/
build/

# Jupyter Notebook
.ipynb_checkpoints

# 환경 설정
.env
.env.local

Node.js 프로젝트

# 패키지 디렉터리
node_modules/
npm-debug.log*

# 환경 설정
.env
.env.local

# 빌드 결과물
dist/
build/

Java 프로젝트

# 컴파일된 클래스 파일
*.class

# 패키지 파일
*.jar
*.war
*.ear

# Maven/Gradle
target/
build/
.gradle/

 

 

gitignore 파일을 만들어주는 사이트다. 참고해서 활용하면 좋을 것 같다.

https://www.toptal.com/developers/gitignore