Android Studio项目的.gitignore应该是什么?


Answers:


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

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


8
为什么我们必须导入项目并手动添加库和模块依赖项?有什么方法可以将这些东西保存在存储库中吗?当我们克隆存储库时,只需打开一个项目即可?
贾斯汀

13
正确的方法是检入* .iml和* .ipr文件,然后在IDE中打开它们。为什么要强迫团队中的其他人重新创建这些文件,又为什么要允许他们使用可能不正确的设置(例如sdk版本)?
Sky Kelsey

26
@liorry,我不同意。这是其他人会看到的第一个答案,并且遭到了广泛的投票。由于使用此特定的.gitignore从git进行新克隆后,需要执行所有操作才能启动项目并运行它,因此我强烈认为这不是大多数人所需要的。尽管我猜想赞成票的数目告诉了我另外的说法,但是我仍然不同意。至少,也许某些信息表明您最有可能必须重新设置该项目,并且该项目不能立即使用。
Skela 2014年

10
@liorry,我的意思不是粗鲁无礼或任何同伴,请不要以个人为由。问题是,这些事情需要以最小的设置量就可以实际使用。当您需要导入项目,并手动添加模块相关性时,它会立即进入疯癫的境界。如果您熟悉一个项目,并且从内而外地了解了这些内容,那么您的方法就没有问题了。但是对于第一次克隆该项目的开发人员来说,它并不那么实用。我真的只是在尝试确保您的方法不会成为常态。
Skela

14
你应该没有版本的.iml文件,除非你wan't如果其他用户时,他们检查了该项目命名为不同的处理不必要的烦恼。
theblang 2015年

151

在我正常的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)。


10
几乎正确。我认为忽略* .so不是一个好主意,因为您将无法使用已将依赖关系链接到NDK库的项目。但是所有帐户都是一个很好的起点!
Skela 2014年

@Skela好点。从构建我自己的本机文件开始,我就已经拥有这些文件了-但我也从事需要简单复制和粘贴预构建文件的项目。我在上面的答案中添加了对此的注释。
菲尔(Phil)

@Phil您对中的XML文件有任何意见.idea/libraries吗?您认为应该共享还是排除它们?
Alex Lockwood 2014年

1
@AlexLockwood我认为,如果该项目不依赖于另一个项目或模块,则应包含这些文件。但是,如果项目依赖于包含库的模块,则应在项目级别忽略此文件,而不是模块忽略该文件。
菲尔(Phil)

@Phil非常酷,到目前为止,我已经使用了它,但是dex文件却无济于事:/moduledirectory/build/intermediates/dex-cache/cache.xml-添加** / build来有意义排除模块中的构建文件夹?
奥利弗·豪斯勒

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

AndroidManifest.xml(以及Gradle)中定义了支持哪些SDK。该设置允许的任何SDK都必须可以进行开发。关于代码样式:不必在每个项目中都单独维护它,而且应该独立于IDE进行澄清。版权标头:希望这些标头在您的代码库中,而不在任何IDE项目文件中。否则,在命令行上进行构建将根本不包括它们...
Risadinha

@Risadinha 1)SDK也在IDE级别定义。它们在清单中被引用,但是项目文件包含实际的SDK定义。2)代码样式应在项目级别上至少保持不变。理想情况下,每个人都可以编写标准的Java,但是,哦,好。3)版权标题存储在项目中。它们用于创建新文件,并且可以包含名称,公司名称,项目,日期等宏。我建议您检出它们!总之,项目文件包含需要在团队中共享和控制的有关项目的重要元信息。
Sky Kelsey

3
维护人员已将更改撤回自己的存储库中。可能很快就会被带入主人。
FalconC

5
JetBrains已弃用DOC-1186,并将更新的建议放到新文章中:不要包含:项目根目录中.idea目录下的所有文件,而workspace.xml和task.xml除外,以及所有.iml文件。共享产生签名版本(将包含密钥库密码),dataSources.ids和datasources.xml(它们可能包含密码)的Android工件时,请务必小心。排除的因素:gradle.xml,用户词典文件夹和.i​​dea / libraries下的XML文件(如果它们是从Gradle项目生成的)。
JSmitty

2
那是一个可爱的理论,但这对我们根本行不通。我们始终以.iml文件结尾,其条目如下:<orderEntry type="jdk" jdkName="1.6 (38)" jdkType="JavaSDK" />请注意数字38似乎一直在增加。(misc.xml文件也有此问题)。
山姆

41

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

我忽略:

我想几乎所有人都同意/build

我讨厌不断看到有关library.xmlGradle创建或删除的各种文件的消息/.idea。该build.gradle为什么做这些XML文件需要版本将在开发者的地方时,他们首先检查了项目运行,这样的吗?/.idea当开发人员使用创建项目时,Android Studio也会生成其余内容Check out from Version Control,那么为什么该文件夹中的任何内容都需要版本控制?

如果*.iml版本为,则新用户将必须使用与提交时完全相同的名称来命名项目。由于这也是一个生成的文件,为什么要首先对其进行版本控制?

这些local.properties文件指向SDK的文件系统上的绝对路径,因此绝对不应对其进行版本控制。

编辑1:添加.gradle以忽略不应版本化的gradle缓存内容(感谢Vasily Makarov)。

编辑2.DS_Store现在添加,我正在使用Mac。此文件夹的Mac专用,应进行版本控制。

附加说明:在构建发行版本时,您可能还想添加目录以放置签名密钥。

为了方便复制/粘贴

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

4
我同意你的回答。我也认为* .iml或.idea文件均不应进行版本控制:stackoverflow.com/a/26290130/2948212
diegosasw 2014年

7
我的投票是支持您的gitignore,因为它非常像我的。几个建议:使用build/而不是/build来匹配模块构建目录,例如app/build。使用.gradle匹配gradle这个缓存目录。
瓦西里·马卡罗夫

我还质疑为什么默认的gitignore会列出/ build而不是build /如果使用/ build会
导致

@ guyland123我刚刚注意到.gitignore我的应用程序目录中还有一个文件,其中也包含/build。这是自动生成的,我不记得了吗?那么build/将适用于子文件夹吗?
theblang 2015年

@mattblang是。创建新项目时会自动生成.gitignore。但是,当您从Eclipse导入项目时,不会创建它。build /将匹配.gitignore文件位置下方所有名为“ build”的目录。例如。应用/构建将被忽略。
guyland123 2015年

37

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

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

*/build/

*~
*.swp

1
* / build /不会忽略我的构建目录中未更改的文件。有任何想法吗?@解决:我必须添加* / * / build /,因为我的构建文件夹有几个目录。
speedynomads

35

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

  • * .iml
  • 。理念
  • 建立

但是,如果保存任何IDE设置(例如自定义代码样式设置),它们将保存在.idea文件夹中。如果要在版本控制中进行这些更改,则还需要保存IDEA文件(* .iml和.idea)。


3
感谢您的解释。。从如果你要在项目中包含.idea你应该忽略* /主意/ workspace.xml和我读* /主意/ tasks.xml
respectTheCode

15
现在不要忽略.idea文件夹。Gradle插件还没有任何“渐进式想法”任务,因此Android Studio中的导入项目现在还远非完美。
robotoaster

2
另外,如果您在团队中工作,请考虑忽略local.properties,因为它包含硬编码的sdk路径。
卡林2013年

@robotoaster,您仍然建议不要忽略.idea文件夹吗?
loeschg 2013年

@Ioeschg不再需要。如果您签出干净的git repo,请使用Import New Project,只要存在构建文件,它就可以正常工作。
robotoaster

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包装器脚本(请参阅此处)。

为了使包装器文件可用于其他开发人员和执行环境,您需要将其检入版本控制。


1
为什么要保留诸如gradlew和gradle.bat之类的二进制文件?
Bilthon

2
@Bilthon它们不是二进制文件。它们是Windows(gradle.bat)和Linux(gradlew)的gradle启动脚本。
Willi Mentzel

哦..我看你是对的,但是它们不是自动生成的吗?
Bilthon

2
@Bilthon确实如此!它们是使用默认选项生成的。如果您更改了某些内容,则应将它们包含在您的存储库中,以便在全新签出时正确构建它。它们是如此之小,始终保留它们并没有什么害处。
Willi Mentzel

2
还可以在此处查看以下官方资源,该资源明确建议将Gradle包装器脚本提交至源代码管理:docs.gradle.org/current/userguide/…–
friederbluemle

19

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

我已将基于Git的Eclipse项目导入Android Studio,一切正常。后来,我想将此项目与Git一起导入(就像第一次一样)到具有Android Studio的另一台计算机上,但这没有用。Android Studio确实加载了所有文件,但无法将项目“视为”项目。我只能打开Git文件。

首次导入项目(从Eclipse到Android Studio)时,我的旧.gitignore被覆盖,新的.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)9月26日14:23 CEST这将取决于项目。如果从Maven或Gradle导入了项目,则将自动生成.iml文件,并且可能不会共享这些文件。否则,这些文件对于项目是必不可少的,必须共享,以便其他用户在签出后可以打开该项目。.iml文件包含有关模块配置的所有信息(根目录,源文件夹,依赖项等)。
阿德里安·罗曼内利

9

这是.gitignore通过此处生成的最佳方法


1
我似乎无法使此功能适用于Android Studio。如果我只是选择“ android”,那似乎是一个Eclipse实现。我做错了吗?
zipzit

唯一提及Eclipse的地方是一行:“ Eclipse生成的Proguard文件夹”。其余的似乎对AS来说还
不错

@zipzit,可能您是正确的。该网站似乎不为Android Studio生成.gitignore,因为它不包含.idea /。
CoolMind '16

1
也有Android Studio Option
Daniyal Javaid

8

无需将以下任何一项添加到源控件:

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

因此,您可以相应地配置hgignore或gitignore。

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

  1. 开启Android Studio
  2. 导入项目
  3. 在克隆的存储库中浏览build.gradle并打开它

就这样

PS:然后,Android Studio将通过maven获取gradle插件,前提是您的build.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仅需要build.gradle来导入项目并生成其余项目。


5
伙计们,那些投反对票的人应该提供这样做的正当理由。让我们/所有人知道我们是否对答案有误可能会有所帮助。
diegosasw 2014年

1
There is NO NEED是的,在某些情况下:例如,版权模板需要在团队成员之间共享。
亨里克·德·索萨

8

我支持.idea文件夹的提交(不包括workspace.xmltasks.xml)。但是我开始得出结论,应该忽略.iml文件。

这是问题所在:

例如,在名为“ foo”的目录中打开一个项目,您将获得foo.iml,一切似乎都很好。问题是,当您尝试在Android Studio中打开项目时,如果我只是简单地将目录重命名为foo2(或将其克隆到另一个目录名称),则会得到以下三点:

  • 一个名为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 /中检入的只有两件事:为团队强制执行的代码样式设置和一个包含该项目特定单词的用户词典,这些单词不是真实单词。我最初提交了.idea中的许多文件,但是当文件由于没有充分的理由而开始显示为更改时,它将被添加到.gitignore中。我的意思不是说应该检查.idea就是说不应该检查.iml文件和modules.xml。

抱歉,SO在完成之前接受了我的评论(请记住,评论不接受换行符)。编辑与我的其余想法。

谢谢!是的,您提到的那些文件确实有意义。我同意,最大的麻烦是library.xml不断触发消息的文件。另外,我不明白为什么我总是看到人们说应该包括* .iml文件,所以很重要。
theblang 2014年


7

取决于项目格式的维护方式:

您有两种选择:

  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项目时,Studio在创建项目结构方面做得非常出色。所以现在我只是密切注意gradle文件中的内容。
zmicer 2014年

5

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

一个很好的测试是克隆您的仓库,看看Android Studio是否能够立即解释和运行您的项目(生成丢失的内容)。
如果不是,请查找缺少的内容,并确保忽略它,而是将其添加到存储库中。

话虽如此,您可以在现有.gitignore文件(例如Android one)上作为示例。

# 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项目都是自动生成的。
Sky Kelsey

6
* .iml,*。idea和* .ipr是特定于Android Studio / IntelliJ的。他们不是建项目所需。由于它们是特定于IDE的,而不是特定于构建链的,因此可能不应该检入它们。每个人都可以使用任何IDE,例如,没有理由检入IntelliJ项目文件而不是Eclipse的文件。
Marc Plano-Lesay

2
如果要处理同一个项目的多个分支,或者要与每个人都使用同一个IDE的团队一起工作,或者要对用于IDE的复杂设置进行版本控制,那么可以,应将文件检入。 IntelliJ的功能远不止用于在编辑器中打开代码的简单绒毛。
Sky Kelsey

2
为什么我和同事之间的iml文件不断显示?特别是external.root.project.path在<module />标记下不断更改
2014年

在具有相同项目的Windows 8.1和OS X Mavericks上使用Android Studio 0.8.12,我注意到打开项目时,以下两个文件被Git修改并标记为已更改:<项目名称> .iml和.idea \ misc.xml。具体来说:<excludeFolder url =“ file:// $ MODULE_DIR $ / build / tmp” />被添加到/从<项目名称>中删除。.iml和.idea \ misc.xml更改为由于JDK安装之间的差异。操作系统。
jkwuc89 2014年

4

我正在通过添加.iml文件和Intellij sez来添加.idea文件夹,但是忽略了.idea / workspace.xml和.idea / tasks.xml,但是.idea / libraries /呢?

我不知道添加这个有什么意义。它有一个XML文件列表,其中列出了Android Studio项目应该知道的库。这些应该来自build.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将是不同的(即artifacts-,末尾附加的数字将与您使用的gradle版本相关)。 )这些路径不是通用的,但建议是检查所有这些路径?


4

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

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

3

我知道这是一个古老的话题,当然有很多选择,但是我确实更喜欢giboSimon Whitaker。它跨平台(mac,* nix和Windows)的使用非常简单,并且使用github存储gitignore库,因此(基本上)始终是最新的。

确保您的本地缓存是最新的:

    $ 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列表,以防止由于某个地方的预定义(复制/粘贴)列表而导致Version Control由于某些原因而无法正常工作时产生未知的副作用。对于我的项目之一,忽略列表仅包括:

.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

@imtheman合理。.我已经更新了答案,并将链接用作参考
Sudip Bhandari

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 ,可以自动生成get。这也是直接链接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),因此我不会以存储库中app / build中的所有文件结尾。

还要注意,如果您从Eclipse导入项目,则不会复制.gitignore,也不会为您“自动”创建.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。

干杯,-乔斯特


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最糟糕的事情。
2016年

-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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.