.gitignore를 허용 목록으로 뒤집자는 제안, HN은 전역 dotfile 무시와 선택적 스테이징을 대안으로 제시
- 글은
.gitignore첫 줄에*를 두고!*.go,!README.md,!go.mod처럼 필요한 파일만 예외 처리해 Git 추적을 허용하는 허용 목록 방식을 제안함 - 작성자는 이 방식이면
.DS_Store,node_modules, IDE 설정, 환경변수,CLAUDE.md같은 로컬 파일의 실수 커밋을 막을 수 있다고 설명함 - 추적되지 않는 이유는
git check-ignore -v에 경로를 넘겨 어떤 ignore 규칙이 적용됐는지 확인할 수 있음 - HN 댓글에서는 저장소 전체를 기본 무시하기보다 전역 ignore에
.*를 넣어 dotfile만 기본 무시하거나,git add -p와git status로 선택적 스테이징을 하자는 의견이 나옴 - 댓글 일부는 Git 허용 목록 방식보다
.dockerignore에서 기본 무시 후 필요한 파일만 포함하는 구성이 이미지 비대화를 줄이는 데 적합하다고 봄
Hacker News opinions
나는 전부 무시에는 회의적이지만, 전역 ignore에 .*를 넣어 모든 dotfile을 기본 무시하게 한 뒤 훨씬 편해졌음. .gitignore, .gitattributes, .github, .editorconfig만 프로젝트마다 예외 처리하면 개인용 .tmp, 캐시, Claude 메모를 마음껏 둘 수 있음.
나도 전역에서 dotfile을 기본 무시하는 방식으로 씀.
그 예외 패턴도 전역 ignore 파일에 !.gitignore 같은 식으로 넣으면 되지 않나?
나는 프로젝트마다 전역 ignore에 playground/를 넣어둠. 실험할 파일은 거기에 넣으면 됨.
.* 대신 .*/를 선호함. 숨김 파일은 쓸 일이 많지만 숨김 디렉터리는 대개 로컬 설정이나 캐시임.
기본 무시는 안 하고, 커밋할 항목만 명시적으로 stage함. 페어 작업 중 git add .를 바로 치는 사람을 많이 봤는데, 실수는 그쪽에서 더 자주 나더라.
git add -A를 쓰긴 하지만 먼저 git status를 보고, 커밋 직전에도 한 번 더 확인함. 하위 디렉터리 변경까지 봐야 해서 이 과정은 빼기 어려움.
작업을 한 커밋 단위로 정리해두면 git add .도 타당함. 여러 커밋으로 나눠야 할 때는 git add -p .로 필요한 hunk만 고름.
원치 않는 파일이나 변경을 막는 데는 git add -p가 제일 유용함.
CLAUDE.md나 AGENTS.md를 왜 저장소에 두면 안 되는 잡파일이라고 부르는지 모르겠음. 프로젝트별 에이전트 규칙이면 다른 개발자도 봐야 같은 기준으로 작업할 수 있음.
사람들이 CLAUDE.md에 개인 취향이나 개인 프롬프트를 넣는 경우가 많아서 문제임. AI가 만든 파일도 git status와 diff에 명확히 나타나는 쪽이 나는 더 좋음.
나는 실수로 파일을 더 올리는 일은 거의 없지만, 허용 목록에 새 파일을 추가하는 일은 분명 잊을 것 같음. 처음 세팅할 거면 언어와 도구별 일반 ignore 템플릿을 복사하는 편이 낫다고 봄.
허용 목록에서 파일 하나를 빼먹는 복구가, 평문 비밀키가 든 설정 파일을 커밋한 뒤 지우는 것보다 훨씬 쉬움. 나는 모든 저장소에 gitignore된 .not-committed 폴더를 둠.
전역 ignore가 로컬에서만 문제를 숨기면 동료에게는 그대로 터짐. 그래서 전역 파일을 복사해 저장소의 .gitignore에 넣고 필요한 만큼 늘려 감.
Git에는 안 쓸 것 같지만 .dockerignore에는 이 방식이 표준임. Docker 이미지는 빠진 파일을 발견하고 고치기 쉽고, 불필요한 파일이 들어가면 이미지가 커짐.
Git이 관례상 표준이어서 쓰는 면이 큼. 더 나은 VCS나 방식이 있어도 Git의 기존 관례를 깨면 협업이 어려움.