はじめに
フロントエンド開発をしていて、こんな経験ありませんか?
👩💻「public/uploads/ フォルダを作ったのに、Gitに上がってない…?」
👨💻「ビルド後に使う dist/ フォルダ、空のままじゃGitで管理されないのか…」
👩💻「public/uploads/ フォルダを作ったのに、Gitに上がってない…?」
👨💻「ビルド後に使う dist/ フォルダ、空のままじゃGitで管理されないのか…」
そう、Gitは「空のフォルダ」を管理してくれないんです。
この記事では、そんなときに使える .keep や .placeholder ファイルについて、フロントエンドエンジニア向けにわかりやすく紹介します!
なぜ空のフォルダはGitで無視されるの?
Gitは基本的に「ファイルを管理するツール」です。
そのため、中に何もないフォルダは無視されてしまうんです。
mkdir uploads
git add uploads
git commit -m "add uploads folder"
# => 実際には何もコミットされない!
解決策:ダミーファイルを入れよう
空のフォルダをGitで管理したいときは、中に空のファイルを1つ入れるだけでOKです!
mkdir uploads
touch uploads/.keep
git add uploads/.keep
git commit -m "Add uploads folder with .keep file"
これで、空のフォルダもちゃんとGitで管理されるようになります。
.keep・.gitkeep・.placeholderの違いは?
実は .keep という名前に特別な意味があるわけではありません。
よく使われるのはこの3つです
| ファイル名 | 用途・意味 |
|---|---|
.keep |
一般的でシンプル。慣習的に最もよく使われる |
.gitkeep |
「Gitで管理するよ」と名前で明示したいときに便利、Git対象だとわかりやすいが、Git公式ではない |
.placeholder |
プレースホルダーパターンとして、意味を持たせたいときにおすすめ |
プレースホルダーパターンとは?
.placeholder を使うパターンは、「ここに意味がある空間です」と明示する目的があります。
・自動生成されるファイルが入る予定
・一時ファイルが保存される場所
・アップロード先として用意されたディレクトリ
mkdir src/generated
touch src/generated/.placeholder
git add src/generated/.placeholder
git commit -m "Add placeholder for generated files"
👆これだけで、将来の目的がチームに伝わりやすくなります!
フロントエンドでの具体的な使いどころ
| フォルダ名 | 用途例 |
|---|---|
public/uploads/ |
ユーザー画像のアップロード先 |
src/generated/ |
自動生成された型ファイルやCSSなど |
dist/ |
ビルド出力先(.gitignoreとセットで使う) |
tmp/ や logs/
|
開発中の一時ファイル・ログ保存先 |
まとめ
| 内容 | 説明 |
|---|---|
| 課題 | Gitでは空のフォルダが無視される |
| 解決法 |
.keepや.placeholderなど、空のファイルを1つ入れる |
| 命名の意味 |
.keep=慣習、.gitkeep=Git明示、.placeholder=意図の明示 |
| ベストプラクス | チームで使う命名ルールを統一するのがおすすめ! |
使い分けのヒント
| 目的 | ファイル名 |
|---|---|
| とりあえず残したいだけ | .keep |
| Git用と明示したい | .gitkeep |
| 意味のあるプレースホルダにしたい | .placeholder |
終わりに
.keep や .placeholder は、ちょっと地味な存在ですが、プロジェクトの品質やチームの体験を底上げしてくれる小さな工夫です。
it公式には .keep や .gitkeep という「正式なルールや仕様」は存在せず、これらは 開発者コミュニティによって生まれた「慣習」 です。
・空のフォルダが無視されて困ったとき
・プレースホルダーとして意味を伝えたいとき
ぜひこのテクニックを思い出してみてください!