git で空ディレクトリを管理(add)する方法

phi phi on git

オレの Advent Calendar 2015 - Adventar の 12 日目です.

git を使っていると空ディレクトリを管理したいってことよくあると思います. 一時(tmp)ファイルログ(log) ファイル用のディレクトリなんかがそうですね.

実は, git は空ディレクトリは add できない仕様みたいです. ですが, .gitignore を上手く使うことでそれっぽいことができるようになります. 今回はその方法を紹介したいと思います.

1. ".gitkeep" という空ファイルを配置

管理したいディレクトリ(ここでは tmp とする)に .gitkeep という空のファイルを作成します. (tmp/.gitkeep)

2. ".gitignore" を作成

おなじみの無視ファイルですね. .gitignore を作り中を下記のようにします.

tmp/*  
!.gitkeep

こうすることで 『tmp 内のファイルは全て無視するよー, けど .gitkeep は例外ねー』 といった具合になるわけです.

ちなみに .gitkeep という名前は何でも良いです. ただ慣習として .gitkeep もしくは .keep という名前を使おうってことになっているみたいです!