Gitでコードを管理する場合、空ディレクトリが存在すると、管理対象になりません。
こんなときは、find コマンドの -exec オプションを使って、.gitkeepファイルを
全てのディレクトリにとりあえず作ってしまうのが楽です。
たとえば、Chefで新しいcookbookを作ったとき。
$ knife cookbook create mycookbook -o . WARNING: No knife configuration file found ** Creating cookbook mycookbook ** Creating README for cookbook: mycookbook ** Creating CHANGELOG for cookbook: mycookbook ** Creating metadata for cookbook: mycookbook $ ls -laR mycookbook/ mycookbook/: 合計 52 drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 .. -rw-r--r--. 1 myuser myuser 467 3月 15 15:28 2015 CHANGELOG.md -rw-r--r--. 1 myuser myuser 1480 3月 15 15:28 2015 README.md drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 attributes drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 definitions drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 files drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 libraries -rw-r--r--. 1 myuser myuser 284 3月 15 15:28 2015 metadata.rb drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 providers drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 recipes drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 resources drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 templates mycookbook/attributes: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/definitions: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/files: 合計 12 drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 default mycookbook/files/default: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/libraries: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/providers: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/recipes: 合計 12 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. -rw-r--r--. 1 myuser myuser 136 3月 15 15:28 2015 default.rb mycookbook/resources: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/templates: 合計 12 drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 default mycookbook/templates/default: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 ..
こんな感じでfindコマンドを使うと、楽です。
$ find mycookbook -type d -exec touch {}/.gitkeep \; $ ls -laR mycookbook/ mycookbook/: 合計 52 drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep -rw-r--r--. 1 myuser myuser 467 3月 15 15:28 2015 CHANGELOG.md -rw-r--r--. 1 myuser myuser 1480 3月 15 15:28 2015 README.md drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 attributes drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 definitions drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 files drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 libraries -rw-r--r--. 1 myuser myuser 284 3月 15 15:28 2015 metadata.rb drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 providers drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 recipes drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 resources drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 templates mycookbook/attributes: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/definitions: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/files: 合計 12 drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 default mycookbook/files/default: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/libraries: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/providers: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/recipes: 合計 12 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep -rw-r--r--. 1 myuser myuser 136 3月 15 15:28 2015 default.rb mycookbook/resources: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/templates: 合計 12 drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 default mycookbook/templates/default: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep
今日はこんなところで。