본문 바로가기

ETC

[Git] .gitignore 이해 및 적용하기

👋  Intro

안녕하세요, 유블린입니다.

이 글에서는 .gitignore가 무엇이고 왜 필요한지와 적용하는 방법을 다뤄보려고 합니다.

 

 


.gitignore이란?

 

github나 gitlab을 사용하다보면 .gitignore라는 파일을 보게 됩니다. 이 파일은 어떤 경우에 필요할까요? 

1. 레포 안의 어떤 파일의 크기가 너무 크거나

2. 여러사람이 함께 사용하는 레포에서 충돌이 날 수 있는 __pychache__ 같은 파일이 있거나

3. 원하지 않는 파일을 업로드 할 때 등의 상황에서

.gitignore를 사용하게 됩니다. (물론 더 다양한 경우가 존재 할 수 있습니다😝)

 

즉, .gitignore 파일은 프로젝트 내에 업로드를 원하지 않는 백업, 로그, 모델, 컴파일된 파일 등을 git에서 제외 시킬 수 있게 해주는 설정 파일입니다. .gitignore에 정의한 정보들에 해당하는 파일들을 track하지 않도록 설정 합니다.

 

 

.gitignore 작성하기

그럼, .gitignore파일은 어떻게 작성할까요? 작성하는 데에는 몇가지 규칙이 있습니다.

  • 주석은 #로 표기
  • 표준 Glob 패턴을 사용
  • 슬래시(/)로 시작하면 하위 디렉터리에 적용되지(recursivity) 않음
  • 디렉터리는 슬래시(/)를 끝에 사용하는 것으로 표현
  • 느낌표(!)로 시작하는 패턴의 파일은 무시하지 않음
# : comments

# ignore all .a files
*.a

# exclude lib.class from "*.a", meaning all lib.a are still tracked
!lib.a

# only ignore the TODO file in the current directory, not subdir/TODO
/TODO

# ignore all json files whose name begin with 'temp-'
temp-*.json

# only ignore the build.log file in current directory, not those in its subdirectories
/build.log

# specify a folder with slash in the end
# ignore all files in the build/ directory
build/

# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

# ignore all .pdf files in the doc/ directory
# /** matches 0 or more directories
doc/**/*.pdf

 

.gitignore 적용하기

작성한 .gitignore 파일은 아래와 같은 명령어로 적용합니다. 

git rm -r --cached .
git add. 
git commit -m "커밋메세지"
git push origin {브랜치명}

적용을 하고 나면 기존에 있던 불필요했던 파일 또는 디렉토리가 제거 된것을 확인할 수 있습니다. 그리고 이후 git에서 제외되도록 정의된 파일이 원격 저장소에 올라가는것을 방지 할수 있습니다.

 

.gitignore 파일 생성을 도와주는 사이트

https://www.gitignore.io/

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com


👍 Outro

지금까지 .gitignore파일의 역할과 사용법에 대해 다뤄보았습니다. 제가 공부하며 정리한 글이기 때문에 틀린 내용이 존재할 수 있습니다. 발견하신다면 피드백은 언제든지 환영입니다. 😊 많은 분들께 도움이 되길 바라며 이만 글 줄이겠습니다. 

 


References

git ignore github