Android Studioプロジェクトの.gitignoreには何が必要ですか?


回答:


1330

Android Studio 3.0に更新しました 。不足しているアイテムをコメントで共有してください。

遅い答えですが、こことここの答えはどれも私たちにとってお金に正しかったです...

それで、これが私たちのgitignoreファイルです:

#built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Local configuration file (sdk path, etc)
local.properties

# Windows thumbnail db
Thumbs.db

# OSX files
.DS_Store

# Android Studio
*.iml
.idea
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
.gradle
build/
.navigation
captures/
output.json 

#NDK
obj/
.externalNativeBuild

Android Studio 2.2以降では、このgitignoreファイルを使用して新しいプロジェクトが作成されます。

*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

非推奨 -古いプロジェクト形式の場合、このセクションをgitignoreファイルに追加します。


/*/out
/*/*/build
/*/*/production
*.iws
*.ipr
*~
*.swp

このファイルは、プロジェクトのモジュールフォルダー内ではなく、プロジェクトのルートフォルダーに配置する必要があります。

メモを編集:

  1. バージョン0.3以降では、*。imlファイルとbuild.gradleファイルをコミットしてプッシュできるようです。プロジェクトがGradleに基づいている場合:新しいオープン/インポートダイアログで、"use auto import"チェックボックスをオンにして"use default gradle wrapper (recommended)"ラジオボタンをマークする必要があります。@Georgeが示唆するように、すべてのパスが相対パスになりました。

  2. @ 128KBの添付ソースと@Skelaの提案に従って回答を更新


8
プロジェクトをインポートし、手動でライブラリとモジュールの依存関係を追加する必要があるのはなぜですか?それらをリポジトリに保存する方法はありますか?リポジトリを複製するとき、プロジェクトを開くだけですか?
ジャスティン

13
これを行う適切な方法は、*。imlファイルと* .iprファイルをチェックインし、IDEで開くことです。チームの他のユーザーにこれらのファイルの再作成を強制し、なぜ正しくない可能性のある設定(SDKバージョンなど)の使用を許可するのですか?
スカイケルシー2013

26
@liorry、同意しない。これは他の人が見る最初の回答であり、大規模に投票されています。この特定の.gitignoreを使用してgitからの新しいクローンの後にプロジェクトを立ち上げて実行するために必要なすべてのことにより、これはほとんどの人が必要とするものではないと私は強く感じています。私は賛成票の数がそうでないことを教えてくれると思いますが、それでも私は同意しません。少なくとも、おそらくプロジェクトを再度セットアップする必要があり、そのままでは機能しないことを示す情報がおそらくあります。
Skela

10
@liorry、私は失礼なことや何かの仲間になるつもりはありません、それを個人的に服用しないでください。問題は、これらを実際に使用するには、最小限の設定で機能する必要があることです。プロジェクトをインポートし、モジュールの依存関係を手動で追加する必要がある場合は、すぐに狂気の領域に入りました。プロジェクトに精通していて、これらのことを完全に理解している場合は、アプローチに問題はありません。しかし、初めてプロジェクトのクローンを作成する開発者にとっては、それほど実用的ではありません。私は本当にあなたのアプローチがすべての標準にならないことを確認しようとしています。
Skela

14
あなたはすべきではないバージョン.imlのファイル、あなたは彼らがチェックアウトしたときに他のユーザーが、異なるプロジェクトに名前を付ける場合は、不要な厄介に対処するためにwan'tていない限り。
theblang 2015

151

通常のAndroid .gitignoreに基づいて構築し、Intellij IDEA Webサイトのドキュメントを読み、StackOverflowの投稿を読んだ後、次のファイルを作成しました。

# built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# built native files (uncomment if you build your own)
# *.o
# *.so

# generated files
bin/
gen/

# Ignore gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Eclipse Metadata
.metadata/

# Mac OS X clutter
*.DS_Store

# Windows clutter
Thumbs.db

# Intellij IDEA (see https://intellij-support.jetbrains.com/entries/23393067)
.idea/workspace.xml
.idea/tasks.xml
.idea/datasources.xml
.idea/dataSources.ids

また、指摘したように、ビルドされたネイティブファイルセクションは、Android NDKを使用して独自のネイティブコードをビルドするときに主に役立ちます。一方、これらのファイルを含むサードパーティのライブラリを使用している場合は、.gitignoreからこれらの行(* .oおよび* .so)を削除できます。


10
ほぼ正しい。* .soを無視するのは良い考えではないと思います。これは、NDKライブラリへの依存関係をリンクしているプロジェクトでは作業できないためです。しかし、すべてのアカウントで非常に良い出発点です!
Skela

@スケラ良い点。私は自分のネイティブファイルを作成していたときからそこにありましたが、事前に作成されたファイルの単純なコピーと貼り付けを必要とするプロジェクトにも取り組みました。上記の回答にこれに関するメモを追加しました。
Phil

@PhilのXMLファイルについて意見はあります.idea/librariesか?それらはあなたの意見で共有または除外されるべきですか?
Alex Lockwood 2014年

1
@AlexLockwoodプロジェクトが別のプロジェクトまたはモジュールに依存していない場合は、これらのファイルを含める必要があると思います。ただし、プロジェクトがライブラリを含むモジュールに依存している場合、このファイルはプロジェクトレベルでは無視されますが、モジュールでは無視されません。
Phil

@Philはとてもクールで、これまで使用してきましたが、dexファイルがクラックをすり抜けてしまいます:/moduledirectory/build/intermediates/dex-cache/cache.xml-** / buildを追加しても意味がありませんモジュール内のビルドフォルダーも除外しますか?
Oliver Hausler 2014年

82

2015年7月更新:

JetBrainsの最も信頼できるソースは次のとおりです


ディレクトリベースのプロジェクト形式(.ideaディレクトリ)

この形式は、デフォルトで最近のすべてのIDEバージョンで使用されています。ここにあなたが共有する必要があるものです:

  • ユーザー固有の設定を保存するファイルとファイルを除く.ideaプロジェクトルートのディレクトリ下のすべてのファイルworkspace.xmltasks.xml
  • .iml異なるモジュールディレクトリに配置できるすべてのモジュールファイル(IntelliJ IDEAに適用)

以下を共有する場合は注意しください

  • 署名付きビルドを生成するAndroidアーティファクト(キーストアパスワードが含まれます)
  • IDEA 13以前dataSources.idsdatasources.xmlは、データベースパスワードを含めることができます。IDEA 14はこの問題を解決します

以下を共有しないことを検討してください。

  • gradle.xmlファイル、このディスカッションを参照
  • ユーザー辞書フォルダ(他の開発者が同じ名前を持つ場合の競合を回避するため)
  • 下のXMLファイル.idea/libraries、彼らがしている場合にはGradleのから生成されたプロジェクト

従来のプロジェクト形式(.ipr/ .iml/ .iwsファイル)

  • プロジェクト.iprファイルとすべての.imlモジュールファイルを共有.iwsます。ユーザー固有の設定が保存されているため、ファイルを共有しないください。

これらの手順はIntelliJ IDEAを対象としていますが、Android Studioの場合は100%正しいです。


ここで.gitignore上記のすべてのルールが組み込まれスニペットは:

# Android Studio / IntelliJ IDEA 
*.iws
.idea/libraries
.idea/tasks.xml
.idea/vcs.xml
.idea/workspace.xml

サポートされているSDKは、AndroidManifest.xmlで定義されています(Gradleでも定義されています)。その設定で許可されているSDKは、開発に問題がないはずです。コードスタイルについて:これは、各プロジェクトで個別に維持する必要があるものではなく、さらにIDEとは独立して明確にする必要があります。著作権ヘッダー:うまくいけば、これらはコードベースにあり、IDEプロジェクトファイルにはありません。そうでない場合、コマンドラインで構築しても、それらは含まれません...
Risadinha

@Risadinha 1)SDKはIDEレベルでも定義されています。それらはマニフェストで参照されますが、プロジェクトファイルには実際のSDK定義が含まれています。2)コードスタイルは、少なくともプロジェクトレベルで維持する必要があります。理想的には、誰もが標準のJavaを書くでしょうが、まあ。3)著作権ヘッダーはプロジェクトに保存されます。これらは新しいファイルの作成に使用され、名前、会社名、プロジェクト、日付などのマクロを含めることができます。チェックしてみることをお勧めします!要約すると、プロジェクトファイルには、チーム全体で共有および制御する必要があるプロジェクトに関する重要なメタ情報が含まれています。
Sky Kelsey 2013年

3
メンテナが自分のリポジトリへの変更をプルしました。おそらくすぐにマスターに引き込まれるでしょう。
FalconC 2013年

5
JetBrainsはDOC-1186を非推奨にし、更新された推奨事項を新しい投稿に追加しました。DO INCLUDE:プロジェクトルートの.ideaディレクトリの下にあるすべてのファイル(workspace.xmlとtasks.xmlを除く)、およびすべての.imlファイル。署名されたビルド(キーストアパスワードが含まれます)、dataSources.ids、およびdatasources.xml(パスワードが含まれる場合があります)を生成するAndroidアーティファクトを共有する場合は注意が必要です。検討対象外:gradle.xml、ユーザー辞書フォルダ、.idea / librariesの下のXMLファイル(Gradleプロジェクトから生成されている場合)。
JSmitty

2
それは素晴らしい理論ですが、これは単に私たちにとってはうまくいきません。最終的には、次のようなエントリを持つ.imlファイルに<orderEntry type="jdk" jdkName="1.6 (38)" jdkType="JavaSDK" />なります。常に増加しているように見える数値38に注意してください。(misc.xmlファイルにもこの問題があります)。
サム

41

私はこれらすべての答えに同意しません。次の構成は、組織のアプリに最適です。

私は無視します:

  • /build
  • /.idea(可能な例外を除いて、dalewkingの回答のコメントを参照してください)
  • *.iml
  • local.properties

ほとんどの人が同意して/buildいると思います。

library.xmlGradleがで作成または削除するさまざまなファイルに関するメッセージが頻繁に表示されることにうんざりしました/.ideabuild.gradle彼らは最初のプロジェクトをチェックアウトし、なぜこれらのXMLファイルはバージョン管理する必要がないとき、開発者のローカルで実行されますか?Android Studioは/.idea、開発者がを使用してプロジェクトを作成するときに残りの部分も生成するCheck out from Version Controlので、なぜそのフォルダー内の何かをバージョン管理する必要があるのですか?

*.imlがバージョン管理されている場合、新しいユーザーはプロジェクトをコミット時とまったく同じ名前にする必要があります。これも生成されたファイルなので、なぜ最初にバージョン管理するのですか?

これらのlocal.propertiesファイルはSDKのファイルシステム上の絶対パスを指しているため、バージョン管理はしないでください。

編集1.gradleバージョン管理すべきではないgradleキャッシングを無視するために追加されました(ありがとう Vasily Makarovに)。

編集2.DS_StoreMacを使用していることを追加しました。このフォルダはMac固有でありバージョン管理。

追記:リリースバージョンをビルドするときに、署名キーを配置するディレクトリを追加することもできます。

コピー/貼り付けの便宜のため

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

4
私はあなたの答えに同意します。* .imlファイルも.ideaファイルもバージョン管理すべきではないと私は信じています:stackoverflow.com/a/26290130/2948212
diegosasw

7
私の投票はあなたのgitignoreに賛成です。いくつかの提案:などのモジュールビルドディレクトリと一致させるためにのbuild/代わりに使用し/buildますapp/build.gradleGradleキャッシングディレクトリを照合するために使用します。
Vasily Makarov

私も質問なぜデフォルトgitignoreリスト/ビルドの代わりに、ビルド/ Iの使用/ビルド場合、私は私のリポジトリ内のアプリ/ビルド内のすべてのファイルで終わる
guyland123

@ guyland123 .gitignoreappディレクトリにも含まれている別のファイルがあることに気づきました/build。この自動生成ですか、覚えていませんか?それではbuild/、サブフォルダーに適用されますか?
theblang 2015

@mattblangはい新しいプロジェクトを作成すると、.gitignoreが自動生成されます。ただし、たとえばEclipseからプロジェクトをインポートする場合は作成されません。build /は、.gitignoreファイルの場所の下にある「build」という名前のすべてのディレクトリに一致します。例えば。app / buildは無視されます。
guyland123

37

私はこの.gitignoreを使用します。私はそれを見つけました:http : //th4t.net/android-studio-gitignore.html

*.iml
*.iws
*.ipr
.idea/
.gradle/
local.properties

*/build/

*~
*.swp

1
* / build /は、ビルドディレクトリの変更されていないファイルを無視していません。何か案は?@解決済み:ビルドフォルダーがいくつかのディレクトリの深さだったため、* / * / build /を追加する必要がありました。
speedynomads 2013

35

Android Studioの場合、バージョン管理に保存する必要があるのは、gradleを使用してコマンドラインからアプリケーションをビルドするために必要なファイルだけです。だからあなたは無視することができます:

  • * .iml
  • 。考え
  • 建てる

ただし、カスタムコードスタイル設定などのIDE設定を保存すると、それらは.ideaフォルダーに保存されます。バージョン管理でこれらの変更が必要な場合は、IDEAファイル(* .imlおよび.idea)も保存します。


3
説明してくれてありがとう。。。あなたが* /アイデア/ workspace.xml無視しなければならないプロジェクトに.ideaを含めるしようとしている場合は、私が読んだものから* /アイデア/ tasks.xml
respectTheCode

15
現時点では.ideaフォルダを無視しないでください。Gradleプラグインにはまだ「gradle idea」タスクがありません。AndroidStudioでのプロジェクトのインポートは、今のところ完璧とは言えません。
robotoaster 2013年

2
また、チームで作業している場合は、local.propertiesを無視することを検討してください。これには、ハードコーディングされたSDKパスが含まれているためです。
Calin 2013年

@robotoaster、それでも.ideaフォルダーを無視しないことをお勧めしますか?
loeschg 2013年

@Ioeschgは不要になりました。clean git repoをチェックアウトする場合は、Import New Projectを使用します。ビルドファイルが存在する限り、正常に機能します。
robotoaster 2013年

20

Android Studio 3.4

Android Studioを使用してGradleプロジェクトを作成する場合、.gitignoreファイルには次のものが含まれます。

.gitignore

*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild

「.idea」ディレクトリ全体は無視することをお勧めします。これは、ユーザー固有の構成が含まれているため、ビルドプロセスにとって重要ではないためです。

Gradleプロジェクトフォルダ

リポジトリの複製後に(Gradle)プロジェクトフォルダーにあるべき唯一のことは、この構造です(少なくとも、これまでに遭遇したユースケースでは)。

app/
.git/
gradle/
build.gradle
.gitignore
gradle.properties
gradlew
gradle.bat
settings.gradle

Gradleラッパースクリプトをチェックインすることをお勧めします(こちらを参照)。

Wrapperファイルを他の開発者や実行環境で利用できるようにするには、それらをバージョン管理にチェックインする必要があります。


1
gradlewやgradle.batなどのバイナリを保持する必要があるのはなぜですか?
ビルトン2017年

2
@Bilthonバイナリではありません。これらは、Windows(gradle.bat)およびLinux(gradlew)用のGradle起動スクリプトです。
ウィリーメンツェル2017年

ああ..正しいと思いますが、とにかく自動生成されていませんか?
ビルトン2017年

2
@Bilthon確かに、彼らはそうです!これらはデフォルトのオプションで生成されます。何かを変更する場合は、新しくチェックアウトするときに適切にビルドするために、それらをリポジトリに含める必要があります。それらはとても小さいので、常にそれらを保つことは害にはなりません。
Willi Mentzel 2017年

2
:また、明示的にソース管理へのGradleラッパースクリプトコミットすることをお勧めしますことを、ここで、この公式のリソースをチェックしdocs.gradle.org/current/userguide/...
friederbluemle

19

私のアドバイスは、.ideaフォルダーを無視しないことです。

GitベースのEclipseプロジェクトをAndroid Studioにインポートしましたが、うまくいきました。その後、Gitを使用してこのプロジェクトを(初めてのように)Android Studioを使用する別のマシンにインポートしたかったのですが、うまくいきませんでした。Android Studioはすべてのファイルをロードしましたが、プロジェクトをプロジェクトとして「見る」ことができませんでした。私はGitファイルしか開けませんでした。

プロジェクトを初めて(EclipseからAndroid Studioに)インポートすると、古い.gitignoreが上書きされ、新しいものは次のようになります。

  • .idea / .name
  • .idea / compiler.xml
  • .idea / copyright / profiles_settings.xml
  • .idea / encodings.xml
  • .idea / libraries / libs.xml
  • .idea / misc.xml
  • .idea / modules.xml
  • .idea / scopes / scope_settings.xml
  • .idea / vcs.xml
  • .idea / workspace.xml

それで、私は空のgitignoreを使用しようとしましたが、今ではうまくいきました。他のAndroid Studioはファイルとプロジェクトをロードできます。いくつかのファイルは(profiles_settings.xml)Gitとインポートにとって重要ではないと思いますが、うまくいったことを嬉しく思います。


github.com/joeblau/gitignore.io/issues/…から:erge Baranov(IntelliJ)Sep 26、14 :23 CESTプロジェクトによって異なります。プロジェクトがMavenまたはGradleからインポートされる場合、.imlファイルは自動的に生成され、共有されない場合があります。そうでない場合、これらのファイルはプロジェクトに不可欠であり、他のユーザーがチェックアウト後にプロジェクトを開くことができるように共有する必要があります。.imlファイルには、モジュール構成に関するすべての情報(ルート、ソースフォルダー、依存関係など)が含まれています。
エイドリアンロマネ

9

これは、生成するための最良の方法だ.gitignore経由してここに


1
Android Studioでこれを機能させることができないようです。「android」だけを選択すると、Eclipse実装のようです。私はそれを間違っていますか?
zipzit 2015

Eclipseへの唯一の言及は、「Eclipseによって生成されたProguardフォルダー」という1行です。残りはASに問題がないようです
Jose_GD

@zipzit、おそらくあなたは正しい。.idea /が含まれていないため、サイトはAndroid Studio用ではなく.gitignoreを生成しているようです。
CoolMind 2016

1
Android Studioオプションもあります
Daniyal Javaid 2018

8

ソース管理に次のいずれかを追加する必要はありません。

.idea/
.gradle/
*.iml
build/
local.properties

したがって、hgignoreまたはgitignoreを適宜設定できます。

開発者が初めてクローンを作成するとき、ソース管理は次のことができます。

  1. Android Studioを開く
  2. プロジェクトをインポート
  3. クローンされたリポジトリ内のbuild.gradleを参照して開きます

それで全部です

PS:次に、Android Studioは、mavenを介して、build.gradleが次のようになっていると想定してgradleプラグインを取得します。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.2'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

Androidスタジオは、.ideaフォルダーのコンテンツ(workspace.xmlを含みます。workspace.xml は生成されるため、ソース管理に含めるべきではありません)と.gradleフォルダーを生成します。

この方法は、ソース管理がAndroid Studioについて何も知らないという点で、Eclipseに対応しています。Android Studioでは、プロジェクトをインポートして残りを生成するためにbuild.gradleが必要です。


5
みんな、反対票を投じた人はそうする正当な理由を提供するべきです。答えが間違っている場合は、私たち/全員に知らせておくと役立ちます。
diegosasw

1
There is NO NEEDはい、いくつかのケースがあります:たとえば、チームメンバー間で共有する必要がある著作権テンプレート。
Henrique de Sousa、

8

.ideaフォルダーのコミットをサポートしています(workspace.xmlおよびを除くtasks.xml)。しかし、私は.imlファイルは無視されるべきであるという結論に達し始めています。

ここに問題があります:

たとえば、「foo」という名前のディレクトリでプロジェクトを開くと、foo.imlが得られます。問題は、Android Studioでプロジェクトを開こうとしたときに、ディレクトリの名前を単にfoo2に変更する(または別のディレクトリ名に複製する)と、3つの結果が得られることです。

  • foo2.imlという名前の新しいimlファイル
  • Androidプロジェクトのimlファイルは、親としてfoo2を指すように変更されます
  • .idea / modules.xmlにはfoo2.imlの行が追加されるため、古いimlファイルと新しいディレクトリのファイルの両方が含まれます

プロジェクトが別のディレクトリに保存されている場合、Android Studioがこのimlファイルを生成しないようにする方法はありません。それらをソース管理に追加すると、問題が発生します。したがって、おそらく* .imlファイルを無視して、.idea/modules.xml


/.idea.imlファイルの両方を無視します。.ideaフォルダーをコミットする必要がある理由を教えてください。
theblang 2014

現在のプロジェクトを見ると、.idea /からチェックインしたことが2つだけあると思います。チームに適用するコードスタイル設定と、実際の単語ではないプロジェクトに固有の単語を含むユーザー辞書です。私は.ideaの多くのファイルをコミットして開始しましたが、ファイルが変更されたと表示され始めたとき、正当な理由もなく.gitignoreに追加されます。私の要点は、.imlファイルとmodules.xmlをチェックインするべきではないと言っていたので、.ideaをチェックインするほどではありませんでした。

申し訳ありませんが、SOは私がコメントを書き終える前にコメントを受け取りました(コメントは改行を受け付けないことに注意してください)。残りの私の考えで編集しました。

ありがとう!ええ、あなたが言及したそれらのファイルは理にかなっています。私が同意する最大の頭痛の種は、library.xmlメッセージをトリガーし続けるファイルでした。また、*。imlファイルを含める必要があると人々が言うのを見続ける理由がよくわかりません。
theblang 2014

8

Android Studio 3.0でテスト済み

.ignoreプラグインをインストールする必要があるかもしれません。

Android用の.gitignoreファイルを自動生成できます。フォルダを右クリックしてフォロー

.gitignoreファイルを追加する

次に、左パネルからAndroidを選択し、「生成」をクリックします

.gitignoreファイルを生成する

Android Studioは、無視する必要があるすべてのファイルを含む.gitignoreファイルを生成します。

http://menukanows.com/how-to-add-gitignore-file-in-android-project/から取得


7

プロジェクト形式の維持方法によって異なります。

次の2つのオプションがあります。

  1. ディレクトリベースの形式(.ideaプロジェクト固有のファイルを含むフォルダーがあります)
  2. ファイルベースのフォーマット(設定ファイルは.iwsおよび.ipr

参照:http : //www.jetbrains.com/idea/webhelp/project.html

バージョン管理にコミットされたファイルは上記に依存します:

  1. .ideaフォルダーをバージョン管理に含め、除外しworkspace.xmltasks.xml
  2. バージョン管理.iprファイルとすべての.imlモジュールファイルは、.iwsユーザー固有の設定を保存するため、ファイルを除外します。

参照:https : //intellij-support.jetbrains.com/entries/23393067


1
私のプロジェクトのすべてが.ideaフォルダと.iwsファイルの両方を持っているように見える
respectTheCode

1
個人的には、JetBrainsからのアドバイスに従ってみましたが、うまくいきませんでした。私と別の開発者がAndroid Studioを使用しており、gitに.ideaファイルと.imlファイルがありました。コミットのマージを開始すると、マージツールが.ideaパスの下のファイルのマージに失敗すると、あらゆる種類の問題が発生することがわかりました。その結果、私はすべてのimlsと.ideaをgitignoreに追加しました。結局のところ、スタジオはGradleプロジェクトをインポートするときにプロジェクト構造を作成する上で非常に優れています。だから今私はgradleファイルにあるものに細心の注意を払います。
zmicer 14

5

基本的に、自動的に再生成されるファイル。

良いテストは、リポジトリを複製し、Android Studioがプロジェクトを解釈してすぐに実行できるかどうかを確認することです(不足しているものを生成します)。
そうでない場合は、不足しているものを見つけて、不足していないことを確認します無視され、リポジトリに追加します。

そうは言って.gitignoreも、Androidのような既存のファイルを例に取ることができます。

# built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Local configuration file (sdk path, etc)
local.properties

# Eclipse project files
.classpath
.project

# Proguard folder generated by Eclipse
proguard/

# Intellij project files
*.iml
*.ipr
*.iws
.idea/

11
これは誤りです。* .imlファイルをチェックインする必要があります。ほとんどの場合、.ideaと* .iprもチェックインする必要があります。「自動的に生成されるもの」の部分は特に間違っています。結局のところ、ほとんどのAndroidプロジェクトは自動的に生成されます。
スカイケルシー2013

6
* .iml、*。idea、*。iprはAndroid-Studio / IntelliJ固有です。プロジェクトのビルドには必要ありません。それらはIDE固有であり、ビルドチェーン固有ではないため、おそらくチェックインすべきではありません。たとえば、誰でも任意のIDEを使用できます。たとえば、Eclipseのものではなく、IntelliJプロジェクトファイルをチェックインする理由はありません。
Marc Plano-Lesay 2013年

2
同じプロジェクトの複数のフォークで作業する場合、または全員が同じIDEを使用するチームで作業する場合、またはIDEに使用する複雑な設定のバージョン管理を行う場合は、はい、ファイルをチェックインする必要があります。プロジェクトファイルIntelliJは、エディターでコードを開くために使用される単純な綿毛以上のものです。
Sky Kelsey

2
自分と同僚の間で、IMLファイルが変更されたまま表示されるのはなぜですか?具体的には、external.root.project.pathが<module />タグの下で変化し続ける
Sam

同じプロジェクトでWindows 8.1とOS X MavericksのAndroid Studio 0.8.12を使用すると、プロジェクトを開くと、次の2つのファイルが変更され、Gitによって変更済みのマークが付けられます:<プロジェクト名> .imlと.idea \ misc.xml。具体的には、<excludeFolder url = "file:// $ MODULE_DIR $ / build / tmp" />が<プロジェクト名> .imlに追加または削除され、.idea \ misc.xmlは、 OSの。
jkwuc89 2014年

4

私は.imlファイルとIntellij sezを追加して.ideaフォルダーを追加しますが、.idea / workspace.xmlと.idea / tasks.xmlは無視しますが、.idea / libraries /はどうですか?

これを追加することがどうして意味があるのか​​わかりません。Android Studioプロジェクトが知っているはずのライブラリをリストしたXMLファイルのリストがあります。これらは、IDEプロジェクトファイルではなく、build.gradleで定義された依存関係から取得されることになっています。

また、これらのファイルのいずれかの内容は次のようになります。

<component name="libraryTable">
    <CLASSES>
       <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.example/example/etc...jar!"/>

これをコミットしても意味がありません。ユーザーがGradleに別のホームディレクトリを指定した場合、または別のGradleバージョンを使用している場合、パスはユーザー.gradle/caches/artifacts-xxxによって異なります(つまりartifacts-、末尾に追加された番号は、使用しているGradleバージョンのリリースに関連します。 )これらのパスは普遍的ではありませんが、アドバイスはこれをすべてチェックインすることですか?


4

Android Studio 0.8.4 .gitignore以降、新しいプロジェクトを開始するとファイルが自動的に生成されます。デフォルトでは以下が含まれます:

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build

3

私はこれが古いトピックであり、確かにたくさんの選択肢があることを知っていますが、私はgiboサイモン・ウィテカーの方が本当に好きです。非常に使いgitignoreやすく、クロスプラットフォーム(mac、* nix、windows)であり、github リポジトリを使用しているため、(基本的に)常に最新です。

ローカルキャッシュが最新であることを確認します。

    $ gibo --upgrade
    From https://github.com/github/gitignore
     * branch            master     -> FETCH_HEAD
    Current branch master is up to date.

必要な言語/テクノロジーを検索:

    $ gibo --search android
    Android

.gitignoreファイルを表示します。

    $ gibo Android
    ### Android

    # Built application files
    *.apk
    *.ap_

    # Files for the Dalvik VM
    *.dex

    # Java class files
    *.class

    # Generated files
    bin/
    gen/

    # Gradle files
    .gradle/
    build/

    # Local configuration file (sdk path, etc)
    local.properties

    # Proguard folder generated by Eclipse
    proguard/

    # Log Files
    *.log

次に、プロジェクトの.gitignoreファイルに追加します。

    $ gibo Android >> .gitignore

(必ず>>、プロジェクトの.gitignoreファイルに追加するために使用してください。>誤って何回も行ったので上書きします!)

これがOPの正確な質問に答えていないことはわかっていますが、giboを使用すると、「質問」について考える必要がほとんどなくなります。.. いいね!;)


3

より良いアイデアを得るために必要なのは次のファイルだけです

  • アプリ
  • build.gradle
  • settings.gradle

基本的なAndroidプロジェクトの構造

その他すべてを.gitignoreファイルに入れることができます。アプリのすべての変更は、主にこれらのファイルとフォルダーにあります。基本的なプロジェクトで表示される残りの部分は、gradleビルドファイルまたはAndroid Studio構成ファイルです。

Android Studioを使用している場合は、「プロジェクトのインポート」を使用してプロジェクトを正常にビルドできます。または、コマンドラインを使用してビルドすることもできます。Gradleを使用したAndroidプロジェクトのビルドに従ってください。


3

どこかから事前に定義された(コピー/貼り付け)リストが原因でバージョンコントロールが何らかの理由で機能しない場合に、不明な副作用を防ぐために、開発期間中に.gitignoreリストを追加するのが最善です。私のプロジェクトの1つでは、無視リストは次のもののみです。

.gradle
.idea
libs
obj
build
*.log

3

Githubは、さまざまな種類のプロジェクトに役立つgitignoreアイテムを保持しています。Androidプロジェクトに役立つgitignoreアイテムのリストを次に示します。

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# Intellij
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/libraries

# Keystore files
*.jks

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Google Services (e.g. APIs or Firebase)
google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

githubのAndroid Gitignore


3
このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。- レビューから
imtheman 2017

@imthemanもっともらしい..私は答えを更新し、参照としてリンクを入れました
Sudip Bhandari 2017

2

Githubの.gitignoreファイルをマージします

### Github Android.gitignore ### 

# Built application files
*.apk
*.ap_

# Files for the Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

### Github JetBrains.gitignore ### 

# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

お読みください:JetBrainsサポート:バージョン管理システムでプロジェクトを管理する方法


2
2016年現在、私はこの回答を私たちのニーズに最も近いものとしてフォローしています。ありがとう
Henrique de Sousa

2

gitignore.ioが提供するAPIを使用すると、自動的に生成されます。これも直接リンクですgitignore.io/api/androidstudio

### AndroidStudio ###
# Covers files to be ignored for android development using Android Studio.

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle
.gradle/
build/

# Signing files
.signing/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio
/*/build/
/*/local.properties
/*/out
/*/*/build
/*/*/production
captures/
.navigation/
*.ipr
*~
*.swp

# Android Patch
gen-external-apklibs

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# NDK
obj/

# IntelliJ IDEA
*.iml
*.iws
/out/

# User-specific configurations
.idea/caches/
.idea/libraries/
.idea/shelf/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml
.idea/datasources.xml
.idea/dataSources.ids
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml
.idea/assetWizardSettings.xml

# OS-specific files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Legacy Eclipse project files
.classpath
.project
.cproject
.settings/

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.war
*.ear

# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
hs_err_pid*

## Plugin-specific files:

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Mongo Explorer plugin
.idea/mongoSettings.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### AndroidStudio Patch ###

!/gradle/wrapper/gradle-wrapper.jar

# End of https://www.gitignore.io/api/androidstudio

1

Android Studio 0.8.4以降、新しいプロジェクトを開始すると.gitignoreファイルが自動的に生成されます。デフォルトでは以下が含まれます:

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
build/
/captures

私はこの声明に同意しますが、このファイルを変更して/ buildをbuild /に変更します(これには/ buildと/ app / buildが含まれます)。

Eclipseからプロジェクトをインポートした場合、.gitignoreはコピーされないか、「自動的に」作成されないことにも注意してください。


0

コンパイル:

#built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Gradle files
.gradle/
build/
/*/build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Windows thumbnail db
Thumbs.db

# OSX files
.DS_Store

# Eclipse project files
.classpath
.project

# Android Studio
*.iml
.idea
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
.gradle
build/

# Intellij project files
*.iml
*.ipr
*.iws
.idea/

0

Android Studioが「無視するファイル」リストを無視するすべてのファイルのインポートを回避し、それでもAndroid Studio VCSを活用するために、私は次のようにしました:これは、Android Studioからの「無視するファイル」リストを使用します(インポート後ではなく!)また、Tortoise SVNがsvn:ignoreリストを設定する面倒な方法を使用する必要がなくなります。

  1. Tortoise SVNリポジトリブラウザーを使用して、リポジトリに直接新しいプロジェクトフォルダーを作成します。
  2. Tortoise SVNを使用して、インポートするフォルダーの上にある新しいフォルダーをチェックアウトします。ローカルフォルダーが空ではないという警告が表示されます。警告を無視します。これで、バージョン管理されていないコンテンツを含むバージョン管理された最上位のフォルダーができました。
  3. ローカルの作業ディレクトリからプロジェクトを開きます。VCSが自動的に有効になります
  4. [ファイル]-> [設定]-> [バージョン管理]-> [無視されたファイル]でファイルの例外を設定します
  5. Android StudioからSVNにファイルを追加します。プロジェクト構造で[アプリ]を選択します-> VCS-> VCSに追加します(「無視されたファイル」を除くすべてのファイルが追加されます)
  6. 変更をコミット

今後、「無視されたファイル」は無視され、Android StudioからVCSを管理できます。

乾杯、-Joost


0

Android Studio 3.5.3

私はこれを私のライブラリとプロジェクトに使用し、Android Studioやその他の有名なツールによって生成されるほとんどのファイルをカバーしています。

# Built application files
*.apk
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Generated files
bin/
gen/
out/
app/release/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches

# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
#*.jks
#*.keystore

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

#NDK
*.so

0

これは、http: //gitignore.io/ の参照を使用して作成されます。ここで、任意のプロジェクトの最新の更新済みgitignoreファイルを作成できます。Androidの場合http://gitignore.io/api/androidstudio。お役に立てれば。現在、Android Studio 3.6.3を使用しています

# Created by https://www.gitignore.io/api/androidstudio
# Edit at https://www.gitignore.io/?templates=androidstudio

### AndroidStudio ###
# Covers files to be ignored for android development using Android Studio.

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle
.gradle/
build/

# Signing files
.signing/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio
/*/build/
/*/local.properties
/*/out
/*/*/build
/*/*/production
captures/
.navigation/
*.ipr
*~
*.swp

# Android Patch
gen-external-apklibs

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# NDK
obj/

# IntelliJ IDEA
*.iml
*.iws
/out/

# User-specific configurations
.idea/caches/
.idea/libraries/
.idea/shelf/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml
.idea/datasources.xml
.idea/dataSources.ids
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml
.idea/assetWizardSettings.xml

# OS-specific files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Legacy Eclipse project files
.classpath
.project
.cproject
.settings/

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.war
*.ear

# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
hs_err_pid*

## Plugin-specific files:

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Mongo Explorer plugin
.idea/mongoSettings.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### AndroidStudio Patch ###

!/gradle/wrapper/gradle-wrapper.jar

# End of https://www.gitignore.io/api/androidstudio

-1

JetBrainsサポートからのこの公式ドキュメントには、以下を含める必要があると記載されています。

All files under .idea directory except workspace.xml and tasks.xml because
    they store specific user settings
All the *.iml files that can be located in different module directories

また、注意すべき他の推奨事項も示します。


1
なぜこれが投票されたのですか?説明のない投票の投票は、SOにとって最悪のことです。
クレイニング

-1

.gitignoreからAndroidRateライブラリー

# Copyright 2017 - 2018 Vorlonsoft LLC
#
# Licensed under The MIT License (MIT)

# Built application files
*.ap_
*.apk

# Built library files
*.aar
*.jar

# Built native files
*.o
*.so

# Files for the Dalvik/Android Runtime (ART)
*.dex
*.odex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sdk/ndk path, etc)
local.properties

# Windows thumbnail cache
Thumbs.db

# macOS
.DS_Store/

# Log Files
*.log

# Android Studio
.navigation/
captures/
output.json

# NDK
.externalNativeBuild/
obj/

# IntelliJ
## User-specific stuff
.idea/**/tasks.xml
.idea/**/workspace.xml
.idea/dictionaries
## Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/dynamic.xml
.idea/**/sqlDataSources.xml
.idea/**/uiDesigner.xml
## Gradle
.idea/**/gradle.xml
.idea/**/libraries
## VCS
.idea/vcs.xml
## Module files
*.iml
## File-based project format
*.iws

-1

https://github.com/github/gitignoreは素晴らしいコレクションです

Android.gitignore

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches

# Keystore files
# Uncomment the following line if you do not want to check your keystore files in.
#*.jks

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Google Services (e.g. APIs or Firebase)
google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.