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

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


当前回答

在Android Studio中,唯一需要保存在版本控制中的文件是使用gradle从命令行构建应用程序所需的文件。所以你可以忽略:

* .iml .idea 构建

但是,如果您保存任何IDE设置,例如自定义代码样式设置,它们将保存在.idea文件夹中。如果您希望在版本控制中进行这些更改,那么您也可以保存IDEA文件(*。Iml和idea)。

其他回答

我有忽略构建文件的问题,但这似乎是有效的:-)

# 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

我不同意所有这些答案。下面的配置非常适合我们组织的应用程序。

我忽略:

/构建 /。想法(可能有例外,见dalewking回答中的评论) * .iml local.properties

我想几乎每个人都同意/建造。

我厌倦了经常看到关于Gradle在/.idea中创建或删除的各种library.xml文件的消息。构建。当开发人员第一次签出项目时,gradle将在他们的本地运行,那么为什么这些XML文件需要版本控制呢?Android Studio也会生成/的剩余部分。当开发人员使用版本控制签出创建项目时,为什么该文件夹中的任何东西都需要进行版本控制?

如果*。Iml的版本是一个新用户将必须命名项目完全相同,当它被提交。既然这也是一个生成的文件,那么为什么首先要为它设置版本呢?

当地的。properties文件指向SDK文件系统上的绝对路径,因此绝对不应该对其进行版本控制。

编辑1:添加.gradle来忽略gradle缓存不应该被版本化的东西(感谢Vasily Makarov)。

编辑2:添加. ds_store现在我使用Mac。这个文件夹是Mac特定的,不应该被版本化。

另外注意:在构建发布版本时,您可能还想添加一个目录来放置签名密钥。

为方便复制/粘贴:

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

我的建议是不要忽略。idea文件夹。

我已经将一个基于git的Eclipse项目导入到Android Studio,效果很好。后来,我想用Git导入这个项目(就像第一次一样)到另一台带有Android Studio的机器上,但没有成功。Android Studio确实加载了所有文件,但无法将项目“视为”项目。我只能打开Git-files。

当第一次导入项目(从Eclipse到Android Studio)时,我的旧的.gitignore被覆盖了,新的看起来像这样:

.idea / . name .idea / compiler.xml .idea /版权/ profiles_settings.xml .idea / encodings.xml .idea /图书馆/ libs.xml .idea / misc.xml .idea / modules.xml .idea /范围/ scope_settings.xml .idea / vcs.xml .idea / workspace.xml

所以,我试着用一个空的gitignore,现在它工作了。另一个Android Studio可以加载文件和项目。我猜有些文件对于Git和导入来说并不重要(profiles_settings.xml),但我很高兴它起作用了。

在我正常的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构建自己的本机代码时,构建的本机文件部分主要是有用的。另一方面,如果您正在使用包含这些文件的第三方库,则可能希望删除这些行(*。O和*.so)来自你的。gitignore。

我合并Github .gitignore文件

Android.gitignore JetBrains.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支持:如何在版本控制系统下管理项目