【git】.gitignoreでディレクトリは管理するけど、ディレクトリ以下のファイルは管理しない

はじめに

最近よくわからずにgitいじってるのですが、やりたかったことは
/app/
/libs/
/tmp/
/logs/2016/

こんなディレクトリ構造になってるとします。
で、appとlibsに管理したいソースコードがあって、tmpとlogsはディレクトリが存在することは管理したいけど中身は管理したくない。

ということでした

解決方法

1 .gitignoreで除外ディレクトリを指定 

/tmp/*
/logs/*

2. 一旦除外ディレクトリを除いてコミットまで行う

git init
git add .
git commit -m "コメント"

3. .gitignoreを編集
一旦除外対象から外す

#/tmp/*
#/logs/*

4. 管理したいディレクトリ直下に.gitkeepを作成

touch /tmp/.gitkeep
touch /logs/.gitkeep

5. .gitkeepに対してコミットまで行う

git add /tmp/.gitkeep /logs/.gitkeep
git commit -m "コミット"

6. .gitignoreをもとに戻す

/tmp/*
/logs/*

とりあえずこんな感じでやりたいことはできた・・・
けど絶対こんなやり方じゃない気がする・・・

どなたか正しいやり方教えてください

以上です