.gitkeepでディレクトリ管理

Gitでは、もちろんソースコード類の管理をすることはできますが、
空のディレクトリだけを管理することは通常できません。

ですが以下の図のようにlogsディレクトリだけは管理したいみたいなことがあったりします。
(※access.log等は管理したくない。)
root/
├ logs
│ └ access.log
│ └ error.log
└ src

こんな、問題を解決するために使われるファイルが.gitkeepと呼ばれるファイルです。
ちなみにファイル名は.gitkeepでなくでも実はOKなのですが、
慣習的によく使われる名前なので、以下の説明では.gitkeepとして説明します。

作り方はいたって簡単です。
以下の例では、logsディレクトリに.gitkeepを作成します。
また、カレントディレクトリはrootとします。

1. ディレクトリの移動

cd ./logs

2.  .gitkeepの作成

touch .gitkeep

3. .gitignoreに以下の記述を追加

logs/*.log
!.gitkeep

後は、コミットとプッシュするだけです。

ちなみに余談ですが、複数のディレクトリに移動して.gitkeepを作成するのはめんどくさく感じませんか。
(コマンドを叩かず、.gitkeepをコピーするのも手ですが…)
実はSourceTree(Gitクライアント)と連携して簡単に作れる方法がありそうなので、また今度説明したいと思います。