전역 gitignore 설정하기 (core.excludesFile)
macOS .DS_Store나 에디터 파일처럼 개인 환경에서 생기는 파일을 모든 저장소에서 무시하도록 core.excludesFile을 설정하는 방법과 기본 경로를 설명합니다.
.DS_Store, Thumbs.db, .idea/workspace.xml, *.swp 같은 파일은 프로젝트가 아니라 내 컴퓨터와 내 에디터 때문에 생긴다. 이런 규칙을 저장소마다 반복해서 넣는 대신 한 번만 적어 두는 곳이 전역 gitignore다.
기본 경로
따로 설정하지 않아도 git은 다음 파일을 전역 무시 목록으로 읽는다.
$XDG_CONFIG_HOME/git/ignoreXDG_CONFIG_HOME이 비어 있거나 설정되지 않았다면$HOME/.config/git/ignore
즉 대부분의 macOS·Linux 환경에서는 ~/.config/git/ignore 파일을 만들기만 하면 된다.
mkdir -p ~/.config/git
printf '.DS_Store\n*.swp\n.idea/workspace.xml\n' >> ~/.config/git/ignore
다른 파일을 쓰고 싶다면 core.excludesFile
원하는 경로의 파일을 쓰려면 core.excludesFile을 설정한다. 이 값을 설정하면 기본 경로 대신 그 파일을 읽는다.
# macOS / Linux
git config --global core.excludesFile ~/.gitignore_global
# Windows (PowerShell)
git config --global core.excludesFile "$env:USERPROFILE\.gitignore_global"
설정이 들어갔는지는 다음 명령으로 확인한다.
git config --global --get core.excludesFile
값이 출력되지 않으면 설정되지 않은 것이고, 이때는 위의 기본 경로가 쓰인다.
무엇을 전역에 둘까
전역에 어울리는 것은 어떤 프로젝트에서 작업하든 똑같이 생기는 개인 파일이다.
| 종류 | 예 | 추천 템플릿 |
|---|---|---|
| 운영체제 | .DS_Store, ._*, Thumbs.db, desktop.ini, *~ | macOS, Windows, Linux |
| 에디터·IDE 개인 상태 | *.swp, .idea/workspace.xml, .vscode/*의 개인 파일 | Vim, JetBrains, VisualStudioCode |
| 개인 도구 | .envrc(direnv), 개인 메모 폴더 | 직접 작성 |
생성기에서 macOS·JetBrains 같은 템플릿만 골라 결과를 복사하면 전역 파일 내용으로 바로 쓸 수 있다.
반대로 빌드 결과, 의존성 폴더, 비밀 파일은 전역이 아니라 프로젝트 .gitignore에 둔다. 이런 규칙은 저장소를 받는 모든 사람에게 적용되어야 하기 때문이다.
전역에 두는 방식의 한계
전역 gitignore는 내 컴퓨터에만 적용된다. 팀원이 전역 설정을 하지 않았다면 그 사람의 .DS_Store는 여전히 커밋될 수 있다. 그래서 GitHub 템플릿 저장소도 Global 템플릿을 전역에 두거나 프로젝트 템플릿에 합치는 방법을 모두 안내한다.
실무에서는 다음 기준이 무난하다.
- 개인 프로젝트, 또는 팀 규칙으로 전역 설정을 안내할 수 있다면 전역에 둔다.
- 오픈소스처럼 기여자를 통제할 수 없다면
.DS_Store,Thumbs.db정도는 프로젝트 .gitignore에도 넣는다.
우선순위
전역 파일은 네 가지 규칙 출처 중 가장 낮은 우선순위를 가진다. 전역에서 *.log를 무시해도 프로젝트 .gitignore에 !keep.log가 있으면 프로젝트 쪽이 이긴다. 어떤 규칙이 적용됐는지 헷갈리면 git check-ignore -v <경로>를 실행하면 된다. 출력 첫 부분에 전역 파일의 경로가 나오면 전역 규칙이 결정한 것이다.