: 사용자가 원하지 않는 파일들 즉, Git 버전 관리에서 제외할 목록을 지정하는 파일이다. Git으로 프로젝트를 관리하다 보면 Git에는 올려서는 안 되거나 불필요한 파일들이 있을 것이다. 물론, 명령어로 일부 파일만 제외하면 되겠지만, 모든 커밋에 그런 행동을 하는 것은 매우 번거로운 일이다. 따라서 gitignore라는 파일들을 만들어서 Git의 추적(Track)을 받기를 원하지 않는 파일들을 넣어주는 것이다.
즉,
을 커밋 대상에서 제외한다.
(+) .idea 폴더란?
.idea폴더는 IntelliJ의 IDE 옵션(프로젝트별 설정값)을 저장하는 폴더라고 생각하면 된다. 여기서 중요한 것은, IDE의 각 옵션은 작업자의 컴퓨터 환경에 맞춰서 변경된다는 사실이다. 설정이 본인에 맞춰 옵션이 설정되어 있으므로, 이걸 다른 작업자에게 공유하면 소스 오류가 발생할 수 있어 주의가 필요하다.
따라서 이 .idea폴더도 다른 작업자가 소스를 받을 때 문제가 없도록 .gitignore에 추가한다.
불필요한 파일 제외
: 프로젝트 개발과 무관하거나 빌드 과정에서 생성되는 임시 파일, 컴파일된 결과, IDE 설정 파일 등의 불필요한 파일들을 Git repository에 포함하지 않음으로써 저장소 용량과 클론 속도를 최적화할 수 있다.
보안과 개인 정보 보호
: .gitignore를 사용하여 암호나 API 키, 인증 토큰과 같이 보안에 민감한 정보가 담긴 파일을 Git으로 관리하지 않도록 한다. 이를 통해 개인 정보 유출 등의 보안 문제를 방지할 수 있다.
버전 관리에서 제외
: 일부 파일들은 개발자마다 다를 수 있으며, 특정 환경에 종속적인 설정 파일들이 있을 수 있다. 이러한 파일들은 버전 관리를 통해 공유할 필요가 없을뿐더러 공유 시 충돌 문제를 야기하므로 .gitignore를 통해 Git repository에서 제외한다.
1. git init을 한 폴더에 .gitignore라는 이름의 파일을 만들어 준다.
2. 해당 파일 안에, 제외할 파일 혹은 폴더를 한 줄씩 작성한다.
다음은 여러 가지 표현 예시와 그 의미를 정리한 것이다.
| 표현 | 의미 |
|---|---|
| #, 빈라인 | #은 주석을 의미하며, 빈 라인은 아무런 영향을 주지 않는다. |
| fileName.js | 특정 파일 fileName을 무시한다. |
| ./fileName_1.js | 현재 경로에 있는 fileName_1만 무시한다. |
| *.a | 확장자가 .a 인 모든 파일을 무시한다. |
| folderName/my.txt | 특정 경로의 특정 파일(my.txt)을 제외한다. |
| folderName/ | 해당 폴더의 모든 파일을 무시한다. |
| folderName/**/fileName_2.txt | 해당 폴더 아래의 모든 fileName_2를 무시한다. |
| folderName/*.a | 해당 폴더의 확장자가 .a 인 모든 파일을 무시한다. |
| folderName/*/.a | 해당 폴더를 포함한 하위 모든 폴더에서 확장자가 .a 인 모든 파일을 무시한다. |
| ./*.a | 현재 폴더의 확장자가 .a 인 모든 파일을 무시한다. |
| !fileName.txt | 특정 파일을 무시하지 않는다(예외). |
(+) 상대 경로 표현
| 표현 | 의미 |
|---|---|
| / | root |
| ./ | 현재 위치 |
| ../ | 상위 경로 |
현재 위치 ./는 보통 생략한다.
../는 상위경로, 즉 현재 폴더가 속한 폴더를 가리킨다.
(+) Github에 이미 올라가 있는 파일
이미 버전 관리에 포함되어 있는 파일들을 .gitignore 파일에 기록한다고 해서 Git이 알아서 버전 관리에서 제외하지는 않는다. 즉 Git이 계속해서 해당 파일을 추적(Track) 하고 있다는 뜻이다. 따라서, 자신의 원격 저장소에 올라가 있는 파일을 삭제하고 더 이상 추적을 받고 싶지 않다면 수동으로 해당 파일들을 버전 관리에서 제외해 줘야 한다.
✅ git ignore 자동 생성 사이트!
https://www.toptal.com/developers/gitignore
위 사이트에서 프로젝트의 환경(Ex. macOS, Node)을 입력해 생성 버튼을 누르면, 기본적으로 세팅되어 있는 .gitignore에 대한 파일을 만들어 준다.