Jeonghwan's Blog
Git에서 빈 디렉터리 유지하는 방법

Git에서 빈 디렉터리 유지하는 방법

프로젝트에서 Git을 사용하다 보면, 로컬에서는 분명히 디렉터리를 만들었는데 GitHub에는 그 디렉터리가 안 보였던 경험, 한 번쯤 있으시지 않나요? 특히 프로젝트의 초기 환경을 세팅할 때 미리 디렉터리 구조를 설계하기 위해 components/, hooks/, utils/ 같은 빈 디렉터리를 만들어 두는 경우가 많죠. 그런데 Git은 '빈 디렉터리'를 추적하지 않아요. 결국 이런 빈 디렉터리는 커밋에 반영되지 않게 되고, 결국 GitHub에서도 로컬에서 만든 디렉터리를 확인할 수 없게 돼요.

이 문제를 해결하기 위해 자주 사용하는 게 바로 .gitkeep이라는 파일이에요. 이번 글에서는 Git이 빈 디렉터리를 추적하지 않는 이유와 .gitkeep의 역할과 생성법을 함께 정리해 볼게요.

Git은 왜 빈 디렉터리를 추적하지 않을까?

Git은 파일 기반 버전 관리 시스템이에요. 다시 말해, 파일이 있어야 그 안의 디렉터리도 관리 대상이 됩니다. 디렉터리만 만들고 아무 파일도 없다면? Git은 그 디렉터리를 무시해버려요.🫣

그래서 components/, hooks/, utils/ 처럼 처음에는 비어있지만 나중에 뭔가 채워질 디렉터리가 커밋 대상에서 빠져버리는 일이 종종 생기죠.

.gitkeep 이란?

사실 .gitkeepGit에서 공식으로 제공하는 기능이나 키워드가 아니에요.

그냥 우리가 빈 디렉터리를 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에서도 손쉽게 생성하는 방법까지 모두 챙겨가셨길 바랄게요! 😊