guide
.git/info/exclude로 나만의 무시 규칙 쓰기
.gitignore를 수정하지 않고 저장소 하나에만 적용되는 개인 무시 규칙을 .git/info/exclude에 적는 방법, 쓰기 좋은 상황과 우선순위를 설명합니다.
.gitignore는 커밋되어 모든 사람과 공유된다. 그런데 이 저장소에서 나만 무시하고 싶은 파일이 있을 때가 있다. 개인 메모, 실험용 스크립트, 내 에디터 플러그인이 만드는 폴더 같은 것들이다. 이럴 때 쓰는 곳이 .git/info/exclude다.
어디에 있나
git init이나 git clone을 하면 .git/info/exclude 파일이 기본으로 만들어진다. 주석 몇 줄만 들어 있는 빈 파일이다.
cat .git/info/exclude
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# ...
.git 디렉터리 안에 있으므로 커밋되지 않고, push해도 다른 사람에게 전달되지 않는다. 문법은 .gitignore와 완전히 같다. 워크트리를 여러 개 쓰는 경우를 포함해 정확한 위치가 궁금하면 git rev-parse --git-path info/exclude로 확인할 수 있다.
언제 쓰나
| 상황 | 예 | 추천 위치 |
|---|---|---|
| 이 저장소에서만 쓰는 개인 파일 | notes.md, scratch/, todo.txt | .git/info/exclude |
| 모든 저장소에 공통인 개인 파일 | .DS_Store, *.swp | 전역 gitignore |
| 모든 팀원에게 필요한 규칙 | node_modules/, dist/, .env | .gitignore |
특히 남의 저장소에 기여할 때 유용하다. 내 도구 때문에 생기는 파일을 막으려고 프로젝트의 .gitignore를 고치면 리뷰어가 그 변경을 원하지 않을 수 있다. .git/info/exclude에 적으면 커밋 기록을 건드리지 않는다.
echo 'scratch/' >> .git/info/exclude
echo '.my-plugin-cache/' >> .git/info/exclude
git status # 더 이상 보이지 않는다
우선순위
규칙 출처 가운데 .git/info/exclude는 .gitignore보다 낮고, 전역 파일보다 높다.
- 명령줄 패턴
.gitignore(하위 디렉터리 파일이 상위를 덮어씀).git/info/excludecore.excludesFile
그래서 .gitignore가 무시하는 파일을 .git/info/exclude의 ! 규칙으로 되살릴 수는 없다. 직접 확인해 보면 다음과 같다.
# .gitignore : x
# .git/info/exclude : !x
$ git check-ignore -v x
.gitignore:1:x x
주의할 점
- 이미 추적 중인 파일에는 효과가 없다. .gitignore와 마찬가지로 무시 규칙은 추적되지 않은 파일에만 적용된다.
- 새로 clone하면 이 파일은 기본 상태로 돌아간다. 여러 컴퓨터에서 같은 규칙이 필요하다면 전역 gitignore를 쓰는 편이 낫다.
- 저장소를 공유 폴더로 복사해 쓰는 경우
.git디렉터리까지 복사되면 규칙도 함께 따라간다.
참고
- gitignore 공식 문서: $GIT_DIR/info/exclude
- GitHub Docs: Excluding local files without creating a .gitignore file
- 확인 기준일: 2026-09-23 (git 2.50.1로 우선순위 예시 검증)