Git에는 빈 폴더를 생성하는 기능이 없습니다. Git에서 폴더를 만들려면 최소한 파일 하나라도 포함된 폴더를 커밋해야 하며, 그 파일은 숨김 파일이라도 상관없습니다.
이 가이드에서는 GitHub에서 폴더를 만드는 두 가지 방법을 소개합니다. 하나는 Git 명령줄을 사용하는 방법이고, 다른 하나는 GitHub 웹 인터페이스를 활용하는 방법입니다.
Git 명령줄로 GitHub에 폴더 만들기
ck-git이라는 프로젝트의 업데이트 작업을 시작한다고 가정해 보겠습니다. 이 프로젝트에는 이미 Git 저장소가 설정되어 있으며, 본격적인 코드 작업에 들어가기 전에 먼저 디렉터리 구조를 만들려고 합니다.
현재 GitHub 저장소에는 폴더가 하나도 없는 상태입니다. 우리는 docs와 dev라는 두 개의 폴더를 만들고 싶은데, 이때 mkdir 명령어를 사용할 수 있습니다.
mkdir docs dev
이 명령어는 두 개의 디렉터리를 생성합니다. 그런데 이 폴더들을 커밋에 추가하고 변경 사항을 푸시해도 GitHub에는 나타나지 않습니다. GitHub는 빈 폴더를 표시하지 않기 때문입니다.
새 폴더를 실제로 생성하려면 각 폴더 안에 내용물을 넣어야 합니다. 프로젝트 초기화 단계이므로 몇 개의 빈 파일만 추가하면 충분합니다. 이렇게 하면 디렉터리 구조를 먼저 확정하고 Git에 업로드할 수 있습니다.
touch docs/.gitkeep
touch dev/.gitkeep
위 명령어로 .gitkeep이라는 이름의 파일 두 개를 만들었습니다. 이제 새로 만든 두 디렉터리에는 각각 파일이 하나씩 들어 있습니다. 참고로 .gitkeep은 빈 폴더를 만들 때 관례적으로 사용되는 파일 이름일 뿐이며, 반드시 이 이름을 사용할 필요는 없습니다.
파일이 생겼으니 이제 비어 있던 폴더들을 추적하고 코드를 커밋할 수 있습니다.
git add *
git commit -m "feat: Create directory structure"
git push
git add 명령어는 파일을 스테이징 영역에 추가하고, git commit 명령어는 변경 사항으로 커밋을 생성하며, git push 명령어는 해당 변경 사항을 원격 저장소(GitHub)로 전송합니다.
명령어 실행 결과는 다음과 같습니다.
[master f10ed95] feat: Create directory structure 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 dev/app.py create mode 100644 docs/Start_Here.md ...
커밋이 성공적으로 완료되었고, GitHub 프로젝트에 dev와 docs라는 새 폴더 두 개가 생겼습니다. 프로젝트의 GitHub 대시보드에 접속하면 폴더가 정상적으로 생성되었는지 확인할 수 있습니다.
각 폴더에는 파일이 하나씩 들어 있습니다. 디렉터리 구조가 정의되었으니 이제 자유롭게 프로젝트 작업을 진행하면 됩니다.
항상 작업 전에 빈 폴더를 미리 업로드해야 하는 것은 아닙니다. 다만 협업자에게 새로운 구조를 미리 보여줘야 하는 등의 특별한 이유가 있다면 위에서 설명한 절차대로 Git에서 폴더를 추가하면 됩니다.
GitHub 웹 대시보드에서 폴더 만들기
GitHub 웹 인터페이스에도 빈 폴더를 직접 생성하는 기능은 없습니다. 새 폴더를 만들려면 새 파일을 생성하면서 그 파일이 위치할 디렉터리 경로를 함께 지정해야 합니다. 즉, 폴더는 파일을 만든 후에야 생성될 수 있습니다.
이번에는 코드에 “assets”라는 디렉터리를 하나 더 추가해 보겠습니다. 먼저 저장소 페이지로 이동하여 “New file(새 파일)” 버튼을 클릭합니다.
상단의 파일 이름 입력란에 “assets/.gitkeep”이라고 입력합니다. 이렇게 하면 assets 폴더와 그 안에 있는 .gitkeep 파일이 동시에 생성됩니다. 파일 이름 입력 중 /를 입력하면 Git이 자동으로 새 폴더 경로를 표시해 줍니다.
원한다면 생성한 파일에 텍스트나 코드를 추가할 수도 있습니다. 앞서 말했듯이 “.gitkeep”은 단순히 관습적인 플레이스홀더 파일 이름일 뿐이며, 파일 이름은 자유롭게 정하셔도 됩니다.
마지막으로 Commit new file(새 파일 커밋)을 클릭하면 새 파일이 저장소에 추가됩니다. 메인 폴더로 돌아가 보면 새 폴더와 파일이 잘 생성된 것을 확인할 수 있습니다.
이것으로 GitHub 웹 대시보드에서도 폴더를 성공적으로 만들었습니다.
마무리
GitHub는 빈 폴더를 Git 저장소에 추가하는 것을 허용하지 않습니다. 폴더를 저장소에 추가하려면 반드시 폴더 안에 파일이 하나 이상 있어야 합니다. 새 폴더를 만들고 싶다면 먼저 폴더를 생성한 뒤 그 안에 플레이스홀더 파일을 넣고, 폴더와 파일을 함께 Git 저장소에 커밋하면 됩니다.
이제 여러분도 프로처럼 GitHub에서 폴더를 만들 준비가 되었습니다!