GitHub で管理しているリポジトリ上で新しいフォルダーを作成するとき、GitHub の UI でパパっとできたら楽な時もあるので、その方法です。
もくじ
前提
git リポジトリでは、見た目上はフォルダーが普通に存在していて、操作もできるのですが、内部構造としてはフォルダーは存在しません。git リポジトリの内部構造は単なるキーバリューストアだからです。
たとえば 📁foo
というフォルダーを追加して、その中に 📄bar.txt
というファイルを配置したとします。このとき、内部的には📁foo
フォルダーが追加されるわけではなく、foo/bar.txt
というキーでファイルがインデックスされるイメージです。
ですので、OS のファイルシステムみたいに空のフォルダー「だけ」を作成することはできません。ファイルが存在しなければ、キーが存在できないからです。
GitHub の UI で新しいフォルダーを作成して、ファイルを作成する
上でも触れましたが、空のフォルダーだけを作成することはできません。ですが、「新しいフォルダーを作成しつつ、その中にファイルを作成する」のであれば、GitHub の UI だけでも実現できます。
やり方は次の通りです。
- [Add file]から[Create new file]を選択します。
- ファイル名を入力するテキストボックスに、「フォルダー名」と「/(半角スラッシュ)」を入力します。すると、その部分がフォルダーとして認識されます。あとは、普通にファイル名を入力します。
もし、サブフォルダーも作成したい場合は、「/(半角スラッシュ)」でどんどん区切っていけば OK です。

GitHub の UI でフォルダーごとファイルをアップロードする
「リポジトリで管理したいファイルはもうローカル環境に用意したけど、それを配置するフォルダーがまだ無い」という場合があります。この場合、新しいフォルダーを作成しつつ、そのフォルダーの中にファイルをアップロードすることになります。
こちらも、GitHub の UI だけで実現できる(かも)です。
やり方は次の通りです。
- ローカル環境で、新しいフォルダーを作成し、その中にアップロードしたいファイルを入れます。
- ここでは、
📁new-folder
\📁new-subfolder
\📄new-file.txt
としました。
- ここでは、
- [Add file]から[Upload file]を選択します。
- ファイルのドロップエリアに、ローカル環境のフォルダーごとドロップします。すると、フォルダーごとアップロードできます。
できない場合もあるかもしれない・・・
フォルダー自体をアップロードする方法ですが、もしかしたら OS やブラウザーによっては対応していないかもしれません。私は Windows 10 上で、 Chrome/Edge/Firefox でそれぞれ試してみて、いずれも上手くいったのですが、他の環境だと不明です。
もし対応していない場合は、残念ですが素直にローカル環境からコミット→プッシュするしかなさそうです。
余談:どうしても空のフォルダーをバージョン管理したいときは、どうする?
「どうしても空のフォルダーをバージョン管理したい。将来このフォルダーの中にファイルを追加していく予定です」という場合もあると思います。その時は、フォルダーの中に「空のフォルダーをバージョン管理していますよ」ということを示す 📄.gitkeep
という名前のダミーファイルを配置することが多いようです。
📄.gitkeep
という名前は git で公式に定められているわけではありません。したがって、この名前にすることで何か特別な扱いのファイルになるわけではないです。目的だけを考えたら、ファイル名は何でも良いのですが、📄.gitkeep
は慣例として広く使われている名前のため、意図が明確で説明不要になるので便利です。
将来、フォルダーの中に本当にバージョン管理をしたいファイルが追加されたときは、📄.gitkeep
はもういらなくなるので、削除すれば OK です。