协慌网

登录 贡献 社区

对于 Android Studio 项目,我的. gitignore 应该是什么?

对于 Android Studio 项目,我的.gitignore应包含哪些文件?

我已经看到几个例子都包含.iml但 IntelliJ 文档说.iml必须包含在你的源代码管理中。

答案

已更新至 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 到 3.0 版本,使用此 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 + 开始,您似乎可以提交并推送* .imlbuild.gradle文件。如果您的项目基于 Gradle:在新的打开 / 导入对话框中,您应该选中"use auto import"复选框并选中"use default gradle wrapper (recommended)"单选按钮。所有路径现在都是 @George 建议的相对路径。

  2. 根据 @ 128KB 附加源和 @Skela 建议更新了答案

基于我的普通 Android .gitignore ,在阅读了 Intellij IDEA 网站上的文档并阅读 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)。

2015 年 7 月更新:

以下是JetBrains最终消息来源


基于目录的项目格式(.idea 目录)

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

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

分享以下内容时要小心

  • 产生签名版本的 Android 工件(将包含密钥库密码)
  • 在 IDEA 13 及更早版本的dataSources.idsdatasources.xml可以包含数据库密码。 IDEA 14 解决了这个问题

您可以考虑不要分享以下内容:

  • gradle.xml 文件,请参阅此讨论
  • 用户词典文件夹(以避免在其他开发人员具有相同名称时发生冲突)
  • .idea/libraries下的 XML 文件,以防它们是从 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