はじめに
Gitでプロジェクトを管理していると、「空のフォルダがGitに追加されない」という問題に遭遇することがあります。この記事では、その解決策として使われる .gitkeep について解説します。
問題:Gitは空のフォルダを追跡できない
Gitはファイルを追跡するシステムであり、空のディレクトリは管理対象外です。
project/
├── src/
│ └── index.ts # ファイルがあるのでsrc/は管理される
│
└── logs/ # 空なのでGitに無視される
git add . を実行しても、空の logs/ フォルダはリポジトリに含まれません。
解決策:.gitkeepを使う
空のフォルダに .gitkeep という空ファイルを置くことで、そのフォルダをGitで管理できるようになります。
project/
├── src/
│ └── index.ts
│
└── logs/
└── .gitkeep # これでlogs/もGit管理される
.gitkeepの作り方
# 空の.gitkeepファイルを作成
touch logs/.gitkeep
# Gitに追加
git add logs/.gitkeep
git commit -m "logsディレクトリを追加"
.gitkeepの特徴
| 項目 | 内容 |
|---|---|
| ファイル名 |
.gitkeep(慣習的な名前) |
| ファイルの中身 | 空でOK |
| Gitの公式機能? | いいえ、単なる慣習 |
| 他の名前でもいい? | はい(.keep、.placeholderなども使われる) |
なぜ.gitkeepという名前?
Gitの公式機能ではなく、開発者コミュニティの慣習です。
-
.gitで始まるのでGit関連だとわかりやすい -
keep(保持する)という意味が明確 - 多くのプロジェクトで採用されている
まとめ
| ポイント | 内容 |
|---|---|
| Gitの制限 | 空のフォルダは追跡できない |
| 解決策 |
.gitkeep ファイルを置く |
| 名前の由来 | 慣習(公式機能ではない) |
| 中身 | 空でOK |
| 削除 | ファイルが追加されたら不要 |