
목차
프로젝트에서 Git을 사용하다 보면, 로컬에서는 분명히 디렉터리를 만들었는데 GitHub에는 그 디렉터리가 안 보였던 경험, 한 번쯤 있으시지 않나요? 특히 프로젝트의 초기 환경을 세팅할 때 미리 디렉터리 구조를 설계하기 위해 components/
, hooks/
, utils/
같은 빈 디렉터리를 만들어 두는 경우가 많죠. 그런데 Git은 '빈 디렉터리'를 추적하지 않아요. 결국 이런 빈 디렉터리는 커밋에 반영되지 않게 되고, 결국 GitHub에서도 로컬에서 만든 디렉터리를 확인할 수 없게 돼요.
이 문제를 해결하기 위해 자주 사용하는 게 바로 .gitkeep
이라는 파일이에요. 이번 글에서는 Git이 빈 디렉터리를 추적하지 않는 이유와 .gitkeep
의 역할과 생성법을 함께 정리해 볼게요.
Git은 왜 빈 디렉터리를 추적하지 않을까?
Git은 파일 기반 버전 관리 시스템이에요. 다시 말해, 파일이 있어야 그 안의 디렉터리도 관리 대상이 됩니다. 디렉터리만 만들고 아무 파일도 없다면? Git은 그 디렉터리를 무시해버려요.🫣
그래서 components/
, hooks/
, utils/
처럼 처음에는 비어있지만 나중에 뭔가 채워질 디렉터리가 커밋 대상에서 빠져버리는 일이 종종 생기죠.
.gitkeep 이란?
사실 .gitkeep
은 Git에서 공식으로 제공하는 기능이나 키워드가 아니에요.
그냥 우리가 빈 디렉터리를 Git에 포함시키기 위해 넣는, 의미 없는 파일 이름일뿐이에요.
그럼 왜 .gitkeep
이라는 이름을 쓸까요?
.keep
,.placeholder
등도 괜찮지만.gitkeep
은 “이건 Git 때문에 유지하는 파일이야”라는 의미가 더 명확하게 드러나기 때문이에요.
즉, 관습적으로 가장 널리 쓰이고 있는 명명법이죠.
.gitkeep 파일 생성법
터미널 사용 시
터미널을 자주 사용하는 개발자라면, CLI를 통해 빈 디렉터리와 .gitkeep
파일을 손쉽게 생성할 수 있어요.
# 1. utils 디렉터리 생성
mkdir utils
# 2. .gitkeep 빈 파일 생성
touch utils/.gitkeep
💡명령어 간단 설명
mkdir
: make directory의 줄임말로, 디렉터리를 만드는 명령어예요.
touch
: 파일을 새로 만들거나 파일의 날짜와 시간을 수정하는 명령어예요.
IDE의 GUI 사용 시
만약 터미널 대신 IDE에서 .gitkeep
을 만들고 싶다면, IDE에서 제공하는 GUI를 통해 아주 간단하게 생성할 수 있어요.
예를 들어 VSCode에서는 탐색기(Explorer)에서 디렉터리 이름 위에서 마우스 오른쪽 버튼을 클릭한 뒤, New File
을 선택하고 파일 이름을 .gitkeep
으로 입력하면 돼요. 엔터를 누르면 자동으로 해당 파일이 생성되고, 내용은 비워둔 채 그대로 저장해도 괜찮아요. 다른 IntelliJ, WebStorm 같은 JetBrains 계열 IDE에서도 마찬가지예요.
마무리
빈 디렉터리가 Git에 안 올라가서 당황했던 경험, 이제 .gitkeep
으로 깔끔하게 해결할 수 있어요.
이번 글을 통해 .gitkeep
의 원리와 CLI에서도 손쉽게 생성하는 방법까지 모두 챙겨가셨길 바랄게요! 😊