guide

전역 gitignore 설정하기 (core.excludesFile)

macOS .DS_Store나 에디터 파일처럼 개인 환경에서 생기는 파일을 모든 저장소에서 무시하도록 core.excludesFile을 설정하는 방법과 기본 경로를 설명합니다.

.DS_Store, Thumbs.db, .idea/workspace.xml, *.swp 같은 파일은 프로젝트가 아니라 내 컴퓨터와 내 에디터 때문에 생긴다. 이런 규칙을 저장소마다 반복해서 넣는 대신 한 번만 적어 두는 곳이 전역 gitignore다.

기본 경로

따로 설정하지 않아도 git은 다음 파일을 전역 무시 목록으로 읽는다.

즉 대부분의 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 템플릿을 전역에 두거나 프로젝트 템플릿에 합치는 방법을 모두 안내한다.

실무에서는 다음 기준이 무난하다.

우선순위

전역 파일은 네 가지 규칙 출처 중 가장 낮은 우선순위를 가진다. 전역에서 *.log를 무시해도 프로젝트 .gitignore에 !keep.log가 있으면 프로젝트 쪽이 이긴다. 어떤 규칙이 적용됐는지 헷갈리면 git check-ignore -v <경로>를 실행하면 된다. 출력 첫 부분에 전역 파일의 경로가 나오면 전역 규칙이 결정한 것이다.

참고

← 이전gitignore 우선순위와 부정(!) 패턴