img

.gitignore는 Git이 특정 파일이나 디렉토리를 버전 관리에서 무시(ignore) 하도록 지정하는 설정 파일이다.

프로젝트를 이쁘게 관리하기 위해서 빌드 결과물, 개인 환경 설정 파일, 임시 파일 등을 .gitignore로 관리하는 것이 좋다.


.gitignore의 위치와 작성 방법

  • 위치: 어디에 있어도 문제없지만, 일반적으로 프로젝트 루트 디렉토리(최상위 경로)에 .gitignore 파일을 배치.
  • 내용: 무시하고 싶은 파일(또는 디렉토리) 경로, 패턴 등을 한 줄씩 작성.
# 빌드 결과물
/build/

# OS나 에디터에서 생성되는 임시 파일
.DS_Store
*.swp
*.temp

# 환경 설정 파일
.env

패턴(와일드카드) 사용 방법

.gitignore에서는 와일드카드를 사용해 여러 파일을 한꺼번에 지정할 수 있다.

# * 임의의 문자열 매칭
*.log
# 확장자가 .log인 모든 파일 무시

# ? : 임의의 한 글자 매칭
?.txt
# a.txt, b.txt 처럼 한 글자 파일명에 .txt 확장자를 무시

# ** : 다중 디렉토리 매칭(2.0 이상의 Git 버전에서 지원)
docs/**/*.md
# docs 폴더 아래 모든 하위 디렉토리 내 .md 파일 무시

예외 처리(!) 문법

.gitignore 파일에서 특정 경로나 파일을 무시하되, 그 중 일부는 예외로 하고 싶다면 !를 사용.

# docs/ 디렉토리를 전부 무시하지만, docs/README.md만은 추적하고 싶은 경우
docs/
!docs/README.md

이미 커밋된 파일 무시하기

이미 Git으로 추적 중인 파일은 .gitignore에 추가해도 계속 추적된다.

즉, .gitignore는 새로 추가되는 파일에 대해서만 무시한다.

# .gitignore에 무시하고 싶은 파일 경로를 추가

# 캐시에서 해당 파일 제거
git rm --cached <파일 또는 폴더 경로> -r

# 다시 커밋
git commit -m "Remove tracked file(s) and update .gitignore"

# 이제 해당 파일(또는 폴더)은 Git에서 추적되지 않으며, .gitignore에 의해 무시

깃허브에서 .gitignore 템플릿 이용하기

  • GitHub의 .gitignore 템플릿 목록을 참고하면, 언어별/프레임워크별로 자주 무시해야 할 파일 목록을 쉽게 가져올 수 있다.
  • 예: Node.gitignore, Python.gitignore, Unity.gitignore 등

결론

  • .gitignore를 잘 관리하면 빌드 산출물, 개인 정보, 임시 파일 등이 깃 이력에 포함되지 않아 프로젝트 관리가 깔끔해지고 보안적으로도 안전해진다.
  • 이미 커밋된 파일을 나중에 .gitignore에 추가해도 자동으로 무시되지 않으니, 필요한 경우 위 과정을 통해 캐시에서 제거해야 한다.

태그:

카테고리:

업데이트:

댓글남기기