Eclipse+ADTプラグインからAndroid StudioにプロジェクトだけインポートしてしばらくほったらかしにしていたAndroidアプリをGit管理したい。
がAndroid Studioの中身がよく分からなかったためぐぐって出てきたよそ様の.gitignoreをとりあえず適用したら他のパソコンでクローンした時にプロジェクトとして正しく認識してくれないという事態が発生。

追加でぐぐってみたが.ideaディレクトリーが必要だが中のxmlはあっちのサイトではあれが要るあれが要らない、こっちのサイトではこれが要るこれが要らないといまいち決定版という情報が無い。

で、試行錯誤の結果.ideaディレクトリーも要らないし/appとbuild.gradleあたりだけ管理してればよさそうという結論に達した。Eclipse+ADTからインポートしたプロジェクトでしか試していないのでひょっとしたら新規に作成したプロジェクトでは何か過不足があるかも知れない。6/10追記:おそらくこの/appという名前はEclipseからインポートした時にこの名前になる模様。新規にプロジェクトを作成した時はウィザードか何かに入力したディレクトリ名になるのかも知れない。

/.gradle/
/.idea/
/app/build/
/build/
/gradle/
/local.properties
/gradlew*
.DS_Store
*.iml

上から順番に

  • /.gradle/ : 多分Android Studioのgradle周りでパソコンローカルな設定だと思われる。
  • /.idea/ : Android Studioの元ネタであるIntelli/Jのプロジェクト管理ディレクトリーであり、Gitをクローン&チェックアウト&最初にプロジェクトを開くときにAndroid Studioによってbuild.gradleから自動的に作られるようなので管理不要。
  • /app/build/ : プロジェクトのコンパイル結果と思われる。Eclipseのbinとgenにあたる。
  • /build/ : 何かの拍子にできているかも知れない。出来てたり出来てなかったり。不用。
  • /gradle/ : Gitをクローン&チェックアウト&最初にプロジェクトを開くときにラッパーを使うかと聞かれるのだがその時にOKとするとインターネットから何かのラッパーがダウンロードされてここに入るようだ。
  • /local.properties : Android-SDKの場所が書かれたパソコンローカルな設定ファイル。
  • /gradlew* : Gitをクローン&チェックアウト&最初にプロジェクトを開くときにラッパーを使うかと聞かれるのだがその時にOKとするとインターネットから何かのラッパーがダウンロードされる。それをキックするWindowsバッチファイルとUNIXのシェルスクリプトファイルと思われる。
  • .DS_Store : 私はWindowsオンリーだがMacな人用にこれを入れた方が良い。
  • *.iml : 色んなところにこの拡張子の設定ファイルが散らばっているが基本的にbuild.gradleの結果のキャッシュらしい。

と解釈している。.gitignoreをこうしてGitにコミットすると、Gitで管理されるのは基本的にbuild.gradleと/app/src/と/app/libs/(外部のjarを使っている時のみ)だけになる。それ以外のファイル・ディレクトリーは最初にプロジェクトを開くときにAndroid Studio 1.5.1が自動で作るようだ。