
.gitignore 파일은 Git의 root 디렉토리에 저장되어, Git Repository나 Staging Area에 추가되지 말아야 하는(무시되어야 하는) 폴더나 파일을 정의하는 파일이다. .gitignore에 정의된 파일은 Staging Area에 올라가지 않기 때문에 tracking 되지 않는다. 따라서 git status 를 이용했을 때 보이지 않는다.
# 프로젝트 루트 디렉토리로 이동
cd my-project
# .gitignore 파일 생성
touch .gitignore
# 텍스트 편집기로 .gitignore 파일 편집, VScode에서도 수정 가능
vim .gitignore
# 다음 패턴 추가
*.bak
tmp/
logs/
# 파일 저장 및 닫기
:wq
# 변경 사항 확인
git status
이미 git 버전 관리에 들어가 있는 파일들을 .gitignore에 적용하고 싶다면
# 현재 레포지토리의 캐시를 모두 삭제한다.
$ git rm -r --cached .
# .gitignore에 넣은 파일 목록들을 제외한, 모든 파일들을 다시 추적(Track)하도록 설정
$ git add .
$ git status
$ git commit -m "commit message"
* : 파일 이름의 일부를 일치시킵니다. 예: *.bak** : 하위 디렉토리를 포함한 모든 디렉토리를 일치시킵니다. 예: logs/**? : 단일 문자를 일치시킵니다. 예: log?.txt!: 패턴 앞에 !을 추가하면 해당 패턴을 제외합니다. 예: !/node_modules/**# : 라인 시작에 #을 추가하면 주석으로 처리됩니다.# .gitignore 파일 예시
# 모든 .bak 파일 제외
*.bak
# logs 디렉토리 및 하위 디렉토리 제외
logs/
# tmp 디렉토리 하위의 모든 파일 제외
tmp/**
# .gitignore 파일 자체 제외
.gitignore
# README.md 파일 제외
README.md
# node_modules 디렉토리 제외하지만 package.json 파일은 포함
!node_modules/**
node_modules/package.json
/ 로 끝나는 경우 logs/ : 현재 작업 중인 프로젝트와 관련된 로그 파일이 있는 폴더를 나타냅니다.
/ 로 시작하는 경우 /logs : 운영 체제와 시스템 관련 로그 파일이 있는 폴더를 나타냅니다.