반응형
.gitignore 파일이란?
개발 과정에는 무수히 많은 파일이 생겨난다.
그 중 커밋할 필요가 없는 파일이나 커밋하면 안 되는 파일도 있다.
이런 파일들을 git이 관리하지 않도록, 즉 커밋 대상으로 인식하지 않도록 하기 위해서는 .gitignore
파일을 사용한다.
.gitignore
파일에 버전 관리에서 제외하고 싶은 파일이나 폴더를 입력하면 된다.
.gitignore가 필요한 경우
- 빌드된 파일: 컴파일 후 생성되는 바이너리 파일이나 배포를 위한 파일 등은 소스 코드가 아니기 때문에 버전 관리에 포함할 필요가 없다
- C/C++:
\*.o
,\*.a
,\*.so
- Java:
\*.class
- C/C++:
- 의존성 관리 파일: 의존성 관리 도구가 설치하는 라이브러리들은 프로젝트 내에서 자동으로 설치될 수 있기 때문에 버전 관리에서 제외하는 것이 좋다.
- Java (Maven/Gradle):
target/
,build/
,.mvn/
- Python (pip):
__pycache__/
,*.pyc
,venv/
- Java (Maven/Gradle):
- IDE 설정 파일: 각 개발자가 사용하는 환경이 다르므로 설정 파일은 개인별로 다를 수 있기 때문에 버전 관리에서 제외하는 것이 좋다.
- IntelliJ IDEA:
.idea/
,*.iml
- Eclipse:
.project
,.classpath
,.settings/
- VSCode:
.vscode/
- IntelliJ IDEA:
- 운영체제에 의해 생성되는 파일: 운영체제에 따라 특정 시스템 파일이 자동으로 생성되는데, 이 파일들은 프로젝트와 무관하기 때문에 버전 관리에서 제외하는 것이 좋다.
- macOS:
.DS_Store
- Windows:
Thumbs.db
,Desktop.ini
- macOS:
- 캐시 파일, 로그 파일, 디버그 파일: 애플리케이션 실행 시 생성되는 캐시 파일이나 로그 파일 또는 디버깅 정보는 프로젝트와 무관한 임시 파일이므로 버전 관리에 포함할 필요가 없다.
- 캐시 파일:
*.cache
,*.tmp
- 일반 로그 파일:
*.log
- 디버그 정보 파일:
*.out
, *.trace`
- 캐시 파일:
- 서버 배포 파일: 배포용으로 빌드된 파일 등은 배포 환경에서 새로 빌드되기 때문에 버전 관리에서 제외하는 것이 좋다.
- Java 빌드 파일:
*.jar
,*.war
- Java 빌드 파일:
- 보안 관련 파일: API 키나 인증 정보가 포함된 파일은 절대 버전 관리에 포함하면 안 된다.
- 환경 변수 파일:
.env
,.env.local
,.env.production
- 환경 변수 파일:
.gitignore 만들기
프로젝트의 최상위 디렉토리에 .gitignore
파일을 만들고 그 안에 ignore할 파일과 디렉토리를 작성하면 된다.
직접 작성할 수도 있지만 http://gitignore.io 를 통해 자동으로 생성한다면 보다 편리하다.
.gitignore 만들기1: 자동 생성
http://gitignore.io에 접속해서
운영체제, 개발환경(IDE), 프로그래밍 언어 등을 검색하여 선택한 후
"생성" 버튼을 누르면 .gitignore
파일에 들어갈 내용이 만들어진다.
해당 내용을 복사해서 .gitignore
파일에 붙여넣기 해주면 된다.
**.gitignore 만들기2: 직접 작성하기
GitHub의 .gitignore 템플릿 저장소 에서 원하는 템플릿을 참고하여 .gitignore
를 직접 작성한다.
.gitignore 파일의 작성법과 패턴
# 샵(#) 문자로 주석을 단다.
# 특정 파일 무시
secret.txt
# 특정 디렉토리 무시
build/
# 모든 .log 파일 무시
*.log
# 모든 디렉토리의 .DS_Store 파일 무시
**/.DS_Stroe
# 특정 확장자 무시 - ex) 모든 .class 파일 무시
*.class
# ignore된 파일 중 특정 파일을 추가하고 싶은 경우 '!' 사용
!.vscode/tasks.json
반응형
'Git과GitHub' 카테고리의 다른 글
[Git] PR 생성 및 수정 시 Jacoco 검증이 수행되도록 하기 (0) | 2024.09.16 |
---|---|
[GitHub] Issue 템플릿 & PR 템플릿 만들기 (1) | 2024.09.14 |