什么文件应该在我的。gitignore为一个Android工作室项目?

我见过几个包含。iml的例子,但是IntelliJ文档说。iml必须包含在你的源代码控制中。


当前回答

我用这个。gitignore。我在http://th4t.net/android-studio-gitignore.html找到了它

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

*/build/

*~
*.swp

其他回答

从Android Studio 0.8.4开始,启动新项目时自动生成gitignore文件。 默认情况下,它包含:

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

我是kosher添加。iml文件和Intellij sez添加。idea文件夹,但忽略。idea/workspace.xml和。idea/tasks.xml,但。idea/libraries/呢?

我不明白加这个有什么意义。它有一个XML文件列表,列出了Android Studio项目应该知道的库。这些应该来自于构建。gradle定义的依赖项——不是IDE项目文件。

其中一个文件的内容是这样的:

<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下的路径对他们来说将是不同的(即工件-在末尾追加的数字将与您正在使用的gradle版本发布相关)。这些路径不是通用的,但建议是检查所有这些?

更新:7/2015

以下是来自JetBrains的确切来源


基于目录的项目格式(。想法目录)

默认情况下,所有最新的IDE版本都使用这种格式。以下是你需要分享的内容:

项目根目录下的。idea目录下的所有文件,除了存放用户特定设置的workspace.xml和tasks.xml文件 可以位于不同模块目录下的所有.iml模块文件(适用于IntelliJ IDEA)

分享以下信息时要小心:

生成签名构建的Android构件(将包含密钥库密码) 在IDEA 13和更早的数据源中。id、datasources.xml可以包含数据库密码。IDEA 14解决了这个问题。

你可考虑不分享以下资料:

xml文件,请参阅此讨论 用户字典文件夹(如果其他开发人员有相同的名称,可以避免冲突) .idea/libraries下的XML文件,以防它们是从Gradle项目中生成的

遗留项目格式(.ipr/.iml/。技术手册文件)

共享项目的。ipr文件和所有的。iml模块文件,不要共享。iws文件,因为它存储了用户特定的设置

虽然这些说明是针对IntelliJ IDEA的,但它们100%适用于Android Studio。


下面是一个.gitignore代码片段,它包含了上述所有规则:

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

这是通过这里生成。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

# Eclipse project files
.classpath
.project

# Android Studio
.idea/
.gradle
/*/local.properties
/*/out
/*/*/build
/*/*/production
*.iml
*.iws
*.ipr
*~
*.swp

*/build
*/production
*/local.properties
*/out