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

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


当前回答

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

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

我同意这个说法,但是我修改了这个文件来改变 /建造到建造/ (包括/build和/app/build) 这样我就不会把所有的文件都放在app/build中。

还要注意,如果从Eclipse导入项目,.gitignore不会被复制,也不会“自动地”为您创建。

其他回答

不需要在源代码控件中添加以下任何内容:

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

所以你可以相应地配置hgignore或gitignore。

开发人员第一次克隆源代码控件时可以这样做:

Open Android Studio 导入项目 浏览构建。Gradle在克隆的存储库中并打开它

这是所有

PS: Android Studio将通过maven获得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 studio将生成.idea文件夹(包括workspace.xml,它不应该在源代码控制中,因为它是生成的)和.gradle文件夹的内容。

这种方法是eclipse友好的,因为源代码控制并不真正了解Android Studio。Android Studio只需要构建。Gradle导入项目并生成其余部分。

基本上是自动重新生成的任何文件。

一个很好的测试是克隆你的repo,看看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/

Android Studio Chipmunk 2021.2.1

如果你使用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
.cxx
local.properties

我建议忽略完整的”。目录,因为它包含特定于用户的配置,对于构建过程没有什么重要的。

Gradle项目文件夹

在存储库克隆之后,你的(Gradle)项目文件夹中唯一应该存在的东西是这样的结构(至少对于我目前遇到的用例来说是这样的):

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

注意:建议像这里描述的那样签入gradle包装器脚本(gradlew, gradlew.bat)。

要使Wrapper文件对其他开发人员和执行环境可用,您需要将它们检入版本控制。

更新: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

这份来自JetBrains Support的官方文档认为应该包含以下内容:

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

它还给出了其他需要注意的事项的建议。