개발 프로젝트에서 버전 관리는 선택이 아닌 필수입니다. 이를 효율적으로 다루는 것만으로도 생산성에 큰 영향을 미치게 된다. 특히 불필요한 파일을 포함하지 않고 Git 저장소를 깨끗하게 유지하는 일은 협업과 코드 관리에 매우 중요하다.
이 글은 자주 놓치기 쉽지만 없어서는 안 될 핵심 파일인 .gitignore의 개념과 활용법을 다루었다.
1) .gitignore 알아보자
1. .gitignore의 개념
.gitignore 파일은 Git에서 특정 파일이나 디렉토리를 추적하지 않도록 지시하는 텍스트 파일이다.
즉, Git Repository에 커밋되어서는 안 되는 파일들을 Git이 무시(ignore)하도록 설정하는 역할을 수행한다.
2. .gitignore의 내용
.gitignore 파일에는 주로 아래와 같은 목적을 가진 파일이나 디렉토리가 포함된다.
- 큰 용량으로 인해 제외해야 할 파일이나 디렉토리
- 이 유형의 파일들은 프로젝트의 전체 용량을 크게 차지하며 대부분 로컬에서 다시 생성하거나 다운로드할 수 있기에 버전 관리가 불필요하다.
- Git Repository의 크기를 줄이고 클론 시간을 단축할 수 있다.
- 예로 node_modules/ , target/ , venv/ 와 같은 파일들이 존재한다.
- 보안 이슈로 인해 제외해야 할 파일이나 디렉토리
- API 키, 데이터베이스 접속 정보 그리고 비밀번호와 같은 서비스 제공 시 민감한 데이터가 포함된 파일들은 보안사항에 문제가 되기 때문에 노출되어서는 안 된다.
- 예로 .env , application-*.propeties 와 같은 파일들이 존재한다.
- 관리가 불필요한 파일이나 디렉토리
- 개발 과정에서 운영체제 혹은 IDE에 의해 자동으로 생성되거나 일시적인 목적을 가진 파일들은 Git Repository를 지저분하게 만들거나 협업 과정에서 출동을 유발할 수 있기에 제외하는 것이 좋다.
- 예로 .DS_Store , .idea , .vscode/ , *.log 와 같은 파일들이 존재한다.
3. .gitignore 사용법
.gitignore 파일은 Git Repository의 최상단 디렉토리에 .gitignore라는 이름으로 생성되어야 한다.
생성된 파일 내부에 제외하고 싶은 파일이름이나 디렉토리 패턴을 한 줄에 하나씩 작성하면 된다.
기본 문법
- 빈 줄: 무시되며 가독성을 위해 사용한다.
- #으로 시작하는 줄: 주석으로 인식한다.
- 파일_이름.확장자: 특정 파일을 무시한다.
- 디렉토리_이름/ : 특정 디렉토리 및 그 하위의 모든 내용을 무시한다.
- * : N개 이상의 문자와 일치한다.
- ! : 파일명 앞에 존재하면 해당 파일은 .gitignore에서 무시한다.
# IDE 설정 파일 무시
.idea/
.vscode/
*.swp
# Node.js 프로젝트 관련 파일 무시
node_modules/
npm-debug.log
yarn-error.log
# 빌드 결과물 무시
/build/
/dist/
# 로그 파일 무시
*.log
# 환경 변수 파일 무시
.env
# 특정 파일만 예외 (위의 *.log 규칙에 포함되더라도 이 파일은 추적)
!important.log
2) .gitignore 작성에 도움이 되는 사이트
1. 템플릿 제공하는 사이트
아래 사이트에서 .gitignore을 작성하기 위한 기본적인 템플릿을 제공하고 있다.
gitignore.io
Create useful .gitignore files for your project
www.toptal.com
위 사이트에 접속 후 아래와 같이 검색창에 제외할 키워드(주로, OS나 IDE와 관련된 공통부분을 제공)를 입력 후 CREATE 한다.
아래와 같이 복사 가능한 텍스트 형식으로 입력한 키워드들의 제외 목록을 제공해 준다.
결론
.gitignore는 프로젝트 생성시 템플릿을 통해 최초로 설정하고 개발 힘에 따라 특정 조건을 추가하는 식으로 편하게 제외하도록 하자