GitHub の UI でフォルダーをアップロード(コマンド不要)

GitHub で管理しているリポジトリ上で新しいフォルダーを作成するとき、GitHub の UI でパパっとできたら楽な時もあるので、その方法です。

前提

git リポジトリでは、見た目上はフォルダーが普通に存在していて、操作もできるのですが、内部構造としてはフォルダーは存在しません。git リポジトリの内部構造は単なるキーバリューストアだからです。

たとえば 📁foo というフォルダーを追加して、その中に 📄bar.txt というファイルを配置したとします。このとき、内部的には📁foo フォルダーが追加されるわけではなく、foo/bar.txt というキーでファイルがインデックスされるイメージです。

ですので、OS のファイルシステムみたいに空のフォルダー「だけ」を作成することはできません。ファイルが存在しなければ、キーが存在できないからです。

GitHub の UI で新しいフォルダーを作成して、ファイルを作成する

上でも触れましたが、空のフォルダーだけを作成することはできません。ですが、「新しいフォルダーを作成しつつ、その中にファイルを作成する」のであれば、GitHub の UI だけでも実現できます。

やり方は次の通りです。

  1. [Add file]から[Create new file]を選択します。
  2. ファイル名を入力するテキストボックスに、「フォルダー名」と「/(半角スラッシュ)」を入力します。すると、その部分がフォルダーとして認識されます。あとは、普通にファイル名を入力します。

もし、サブフォルダーも作成したい場合は、「/(半角スラッシュ)」でどんどん区切っていけば OK です。

「/(半角スラッシュ)」でサブフォルダーも作成できる

GitHub の UI でフォルダーごとファイルをアップロードする

「リポジトリで管理したいファイルはもうローカル環境に用意したけど、それを配置するフォルダーがまだ無い」という場合があります。この場合、新しいフォルダーを作成しつつ、そのフォルダーの中にファイルをアップロードすることになります。

こちらも、GitHub の UI だけで実現できる(かも)です。

やり方は次の通りです。

  1. ローカル環境で、新しいフォルダーを作成し、その中にアップロードしたいファイルを入れます。
    • ここでは、📁new-folder \ 📁new-subfolder \ 📄new-file.txt としました。
  2. [Add file]から[Upload file]を選択します。
  3. ファイルのドロップエリアに、ローカル環境のフォルダーごとドロップします。すると、フォルダーごとアップロードできます。

できない場合もあるかもしれない・・・

フォルダー自体をアップロードする方法ですが、もしかしたら OS やブラウザーによっては対応していないかもしれません。私は Windows 10 上で、 Chrome/Edge/Firefox でそれぞれ試してみて、いずれも上手くいったのですが、他の環境だと不明です。

もし対応していない場合は、残念ですが素直にローカル環境からコミット→プッシュするしかなさそうです。

余談:どうしても空のフォルダーをバージョン管理したいときは、どうする?

「どうしても空のフォルダーをバージョン管理したい。将来このフォルダーの中にファイルを追加していく予定です」という場合もあると思います。その時は、フォルダーの中に「空のフォルダーをバージョン管理していますよ」ということを示す 📄.gitkeep という名前のダミーファイルを配置することが多いようです。

📄.gitkeep という名前は git で公式に定められているわけではありません。したがって、この名前にすることで何か特別な扱いのファイルになるわけではないです。目的だけを考えたら、ファイル名は何でも良いのですが、📄.gitkeep は慣例として広く使われている名前のため、意図が明確で説明不要になるので便利です。

将来、フォルダーの中に本当にバージョン管理をしたいファイルが追加されたときは、📄.gitkeep はもういらなくなるので、削除すれば OK です。

kpdn

お寿司とゲームと動物が好きな、フリーランスのエンジニアです。フロントエンドからインフラまで日々奮闘中です。最近は物忘れがどんどんがひどくなってきました。

コメントを残す