728x90
.gitignore 파일 이란?
- .gitignore 파일은 Git 저장소에서 무시할 파일과 디렉토리를 지정하는 역할을 한다.
- 이 파일을 사용하여 Git이 관리할 필요가 없는 파일들을 제외할 수 있다.
.gitignore 파일의 용도
1. 특정 파일 무시, 간편한 관리
- .gitignore 파일을 통해 특정 패턴에 맞는 파일이나 디렉토리를 한 번에 무시할 수 있어 관리가 용이해진다.
- 예를 들어 .log를 무시하면 모든 로그 파일을 자동으로 제외할 수 있다.
2. 팀 간의 일관성 유지
- 여러 개발자가 협업하는 프로젝트에서 .gitignore 파일을 사용하면, 모든 팀원이 동일한 파일을 무시하도록 할 수 있다.
- 이는 프로젝트의 일관성을 유지하고, 다른 개발자에게 불필요한 파일이 커밋되는 것을 방지한다.
3. 버전 관리의 명확성
- 무시된 파일은 Git의 관리 대상이 아니므로, 코드 변경 이력에서 불필요한 파일이 제외되어 이력을 명확하게 관리할 수 있다.
- 이를 통해 실제로 버전 관리가 필요한 파일에 집중할 수 있다.
파일을 무시하는 이유는?
1. 불필요한 파일 및 디렉토리
- 빌드 과정에서 자동으로 생성되는 파일(예: node_modules, dist, build)이나 로그 파일(예: .log)은 일반적으로 버전 관리가 필요하지 않다.
- 이러한 파일은 다른 개발자에게 불필요한 혼란을 줄 수 있다.
2. 기밀 정보
- API 키, 비밀번호 등이 포함된 환경 설정파일(예:. env, config.json)은 공개적으로 공유되면 안 되는 기밀 정보를 포함할 수 있기 때문에 이 파일들을 무시함으로써 보안을 강화할 수 있다.
3. 파일 충돌 방지
- 각 개발자가 사용하는 IDE 설정 파일(.vscode, .idea 등)이나 운영 체제에 특화된 파일(DESStore, Thumbs.db 등)을 무시하면, 협업 시 불필요한 파일 충돌이나 버전 관리 문제를 방지할 수 있다.
4. 저장소 크기 최적화
- 대용량의 파일이나 디렉토리를 저장소에 포함시키면 Git의 크기가 커지고, push/pull 시 속도 저하 및 대역폭 소모가 발생할 수 있다.
- 이런 파일들을 무시하면 저장소를 가볍게 유지할 수 있다.
* 대역폭(bandwidth): 네트워크에서 데이터를 전송할 수 있는 최대 용량
gitignore 파일 생성
- 프로젝트 루트 디렉토리로 이동: 프로젝트의 최상위 폴더(루트 디렉토리)로 이동해서 gitignore 파일을 생성해 준다.
- .gitignore 파일 생성
- Windows
- 파일 탐색기에서 프로젝트 루트 디렉토리로 이동
- 빈 공간에서 오른쪽 클릭 → 새로 만들기 → 텍스트 문서를 선택
- 새로 생성된 파일 이름을 .gitignore로 변경(확장자 없이)
- macOS / Linux
- 터미널을 열고 프로젝트 루트 디렉토리로 이동
- 다음 명령어를 입력하여 .gitignore 파일을 생성
touch .gitignore
- Windows
무시할 파일 설정
.gitignore 파일 안에 무시할 파일 패턴들을 추가해 준다.
# node_modules 폴더 무시
/node_modules
# OS에 의해 생성된 파일 무시
.DS_Store
Thumbs.db
# 빌드 아티팩트 무시
/dist
/build
# 환경 변수 파일 무시
.env
# 로그 파일 무시
*.log
파일 수정 후 변경 사항 커밋
.gitignore 파일을 수정한 후에는 Git에 변경 사항을 커밋해야 한다.
# git 상태 확인
git status
# 변경 사항 스테이징
git add .gitignore
# 변경 사항을 커밋
git commit -m "커밋 메세지"
무시할 파일이 이미 Git에 올라간 경우
이미 Git에 올라간 파일들은 .gitignore 파일에 추가해도 무시되지 않아서 이 경우, 해당 파일을 Git에서 제거해야 한다.
# 파일 제거
git rm --cached 제거할파일명
# 변경 사항 커밋
git commit -m "커밋메세지"
728x90
'Git, Github' 카테고리의 다른 글
push 한 커밋 메시지 수정 (0) | 2024.10.07 |
---|---|
[VSCode]로컬에서 작업 하던 프로젝트 최초로 Github에 올리기 (0) | 2024.08.09 |
Git 명령어 (0) | 2024.08.09 |