컴퓨터/컴퓨터etc

[Git] .gitignore로 특정 파일 tracking하지 않기

옆동네애옹이 2024. 9. 2. 21:40
728x90

Huggingface NLP course를 따라가며 겪는 문제들... 연구실 컴터(Win10) - 개인 컴터(Win11) - 노트북(macOS)를 옮겨가며 공부하고 작업하니 호환성이 돌아버릴 지경이당

 

따라서 본인은 git을 이용해 코드와 리소스를 저장하고 있었는데, 학습을 돌리다보니 확실히 파일이 너무 커지더랑

 

그래서 알아보는 (어디서 들었었던) .gitignore를 이용해보기로 했다

 

.gitignore 

- 모든 변경사항을 추적하는 버전관리시스템인 git에게 폴더/파일을 지정해 추적하지 말라고 알려주는 것.

-  보통 .venv나, key, DB 등 민감한 정보들을 untracking하거나 remote repo에 올리지 않게 주의하기 위해 사용

 

- 작업 dir에서 .gitignore 파일을 만들어준다

- .gitignore에 패턴을 작성해 폴더/파일을 untracking

 

작성 기본 규칙

# 주석처리

# 특정 파일 무시: 파일이름 그대로 작성
secret.txt

# 특정 확장자 무시: * 와일드카드 이용
*.log
*.tmp

# 특정 디렉토리 무시: 이름 뒤에 / 추가
build/

# 특정 디렉토리 내 특정 파일 무시
logs/*.log

# 예외 규칙: .gitignore 규칙 중 특정 파일을 무시하지 않도록 ! 사용
*.log
!important.log

 

일반적인 .gitignore 규칙 예시

여러 프로젝트에서 흔히 사용되는 패턴들

# 1. 운영체제 파일 무시
# macOS
.DS_Store
# Windows
Thumbs.db
# Linux
*~

# IDE 및 편집기 파일 무시
# VScode
.vscode/
# IntelliJ IDEA
.idea/
*.iml
# Sublime text
*.subline-project
*.subline-workspace

# 프로젝트 환경 파일 부시
# python virtualenv
venv/
__pycache__/
&.py[cod]
# Node.js
node_modules/
npm-debug.log
yarn-error.log

# 빌드 아티팩트 무시
# C/C++ pj
*.o
*.so
*.exe
# JAVA pj
/target/
*.class

# 환경 파일 무시
.env

 

gitignore에 들어오면 편집기에서 폴더/파일이 바뀌어 보인다!

.gitignore에 있는 파일은 회색처리된다

 

728x90