.gitignore이란??
.gitignore 파일은 Git 버전 관리 대상에서 제외할 파일 목록을 지정하는 파일이다. .gitignore 파일은 프로젝트의 루트 디렉터리에 위치해야 한다.
왜 필요하죠?
- 불필요한 파일 제외 : 컴파일된 바이너리 파일, 로그 파일, 임시 파일 등 프로젝트에 필요하지 않거나, 자동으로 생성되는 파일들이 git에 포함되지 않도록 방지한다. 이러한 파일들을 커밋하지 않으면 원격 저장소의 크기를 줄이고, 불필요한 변경 사항을 피할 수 있다.
- 보안 정보 보호 : API 키, 비밀번호, 개인 설정 파일 등 민감한 정보를 포함하는 파일이 Git에 포함되지 않도록 하여 보안을 강화한다. 예를 들어, .env와 같은 파일을 .gitignore에 추가하여 Git에 올라가지 않게 하는 것이다.
- 환경에 따른 파일 차이 관리 : 개발 환경에 따라 달라지는 설정 파일이나 OS에 따라 자동 생성되는 파일 등을 무시함으로써, 다른 개발자들과의 충돌을 줄이고 일관된 프로젝트 상태를 유지할 수 있다.
.gitignore에 파일 추가하기
.gitignore에 추적하지 않을 파일을 추가할 때는 표준 Glob 패턴에 따라서 작성하면 된다. 각 케이스별로 어떻게 .gitignore에 추가하면 좋을지 예시와 함께 살펴보자.
특정 디렉토리 무시하기
[디렉토리_이름]/
예를 들어서, node_modules 디렉토리를 무시하도록 하고 싶다면 다음과 같이 작성한다.
node_modules/
이렇게 하면 git은 node_modules 내부에 있는 모든 디렉토리와 파일을 무시하게 된다.
특정 확장자를 가진 파일 무시하기
*.[확장자]
예를 들어, log라는 확장자를 가진 파일을 모두 무시하게 하려면 다음과 같이 작성한다.
*.log
이렇게 하면 git은 log 확장자를 가진 모든 파일을 무시하게 된다.
파일 무시하기
파일은 프로젝트 전체에서 무시하게 할지, 아니면 특정 폴더에 있는 파일만 무시할지 정할 수 있다.
만약 프로젝트 전체에서 무시하도록 하려면 디렉터리를 생략하고 파일 이름만 작성하면 된다. 예를 들어, 프로젝트 전체에서 .env 파일을 무시하게 하려면 다음과 같이 작성한다.
.env
특정 디렉터리에 있는 파일을 무시하려면 디렉터리를 포함한 경로를 작성해야 한다. 예를 들어, logs 디렉터리 내의 error.log 파일을 무시하려면 다음과 같이 작성한다.
logs/error.log
루트 디렉터리에 있는 파일만 무시하고 싶다면 다음과 같이 작성한다.
/error.log
특정 디렉터리 하위의 모든 파일을 무시하고 싶을 때는 다음과 같이 작성한다.
logs/**/error.log
이렇게 하면 logs 디렉터리를 포함한 모든 하위 디렉터리들 내의 error.log을 무시한다.
.gitignore 예시
# ignore all .class files
*.class
# exclude lib.class from "*.class", meaning all lib.class are still tracked
!lib.class
# 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 any directory named temp
temp/
# ignore doc/notes.txt, but not doc/server/arch.txt
bin/*.txt
# ignore all .pdf files in the doc/ directory and any of its subdirectories
# /** matches 0 or more directories
doc/**/*.pdf
#과 함께 작성한 것은 주석이다.
github에서 .gitignore 파일 템플릿을 제공하고 있으니 이를 토대로 .gitignore을 작성하면 된다.
이미 추적되고 있는 파일을 .gitignore에 추가해도 되나요??
이미 추적되고 있는 파일을 .gitignore에 추가하려고 하면 몇가지 단계가 필요하다.
- .gitignore에 파일 추가 : 추적 대상에서 제외하려는 파일을 .gitignore에 추가한다.
- 캐시에서 파일 제거 : 이미 추적되고 있는 파일을 Git의 캐시(index)에서 제거한다.
git rm --cached \[파일\_이름\]
- 변경 사항 커밋하기 : 파일이 제거되었다는 변경 사항을 커밋해야 한다.
git commit -m "커밋메시지"
이렇게 하면 git은 해당 파일을 더 이상 추적하지 않으며, 이후 변경 사항도 버전 관리에서 제외된다.
자동으로 .gitignore을 생성해주는 사이트
해당 사이트는 운영체제, 개발환경(IDE), 프로그래밍 기술 스택을 검색하여 선택하면 .gitignore 파일을 자동으로 생성해주는 사이트이다.
참고
'공부 > GitHub' 카테고리의 다른 글
[Github] README.md에 이미지 넣기 (1) | 2023.11.25 |
---|---|
[GitHub] Gitmoji 사용 (0) | 2023.11.13 |
깃허브로 배포하기 (1) | 2023.01.22 |
깃허브 꾸미기 (0) | 2023.01.17 |
깃허브 연동 (0) | 2022.12.19 |