关于git:Android Studio项目的.gitignore应该是什么?

What should be in my .gitignore for an Android Studio project?

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

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


已更新至Android Studio 3.0
请在评论中分享遗失的项目。

一个迟到的答案,但这里和这里的答案都没有对我们来说是正确的...

所以,这是我们的gitignore文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#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文件创建了新项目:

1
2
3
4
5
6
7
8
9
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

不推荐使用 - 对于较旧的项目格式,请将此部分添加到您的gitignore文件中:

1
2
3
4
5
6
7
/*/out
/*/*/build
/*/*/production
*.iws
*.ipr
*~
*.swp

此文件应位于项目的根文件夹中,而不是位于项目的模块文件夹中。

编辑笔记:

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

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


  • 基于我的普通Android .gitignore,在阅读了Intellij IDEA网站上的文档并阅读StackOverflow上的帖子后,我构建了以下文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    # 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.ids中,datasources.xml可以包含数据库密码。 IDEA 14解决了这个问题。

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

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

    旧版项目格式(.ipr / .iml / .iws文件)

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

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

    这是一个包含以上所有规则的.gitignore代码段:

    1
    2
    3
    4
    5
    6
    # Android Studio / IntelliJ IDEA
    *.iws
    .idea/libraries
    .idea/tasks.xml
    .idea/vcs.xml
    .idea/workspace.xml


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

    我忽略了:

    • /build
    • /.idea(可能有例外,请参阅dalewking答案中的评论)
    • *.iml
    • local.properties

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

    我厌倦了不断看到有关Gradle在/.idea中创建或删除的各种library.xml文件的消息。 build.gradle在首次签出项目时将在开发人员的本地运行,那么为什么需要对这些XML文件进行版本化?当开发人员使用Check out from Version Control创建项目时,Android Studio还会生成/.idea的其余部分,那么为什么该文件夹中的任何内容都需要进行版本化?

    如果*.iml是版本化的,则新用户必须将项目命名为与提交时完全相同。既然这也是一个生成的文件,为什么它首先出现呢?

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

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

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

    附加说明:您可能还希望在构建发布版本时添加一个目录以放置签名密钥。

    复制/粘贴方便:

    1
    2
    3
    4
    5
    6
    .gradle
    /build
    /.idea
    *.iml
    local.properties
    .DS_Store


    我用这个.gitignore。我发现它在:http://th4t.net/android-studio-gitignore.html

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    *.iml
    *.iws
    *.ipr
    .idea/
    .gradle/
    local.properties

    */build/

    *~
    *.swp


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

    • * .iml
    • 。理念
    • 建立

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


    Android Studio 3.4

    如果使用Android Studio创建Gradle项目,.gitignore文件将包含以下内容:

    的.gitignore

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    *.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)项目文件夹中唯一应该是这种结构(至少对于我到目前为止遇到的用例):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    app/
    .git/
    gradle/
    build.gradle
    .gitignore
    gradle.properties
    gradlew
    gradle.bat
    settings.gradle

    建议签入gradle包装器脚本(参见此处)。

    To make the Wrapper files available to other developers and execution environments you’ll need to check them into version control.


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

    我已经将一个基于Git的Eclipse项目导入Android Studio,并且运行良好。后来,我想用Git(就像第一次)将这个项目导入另一台安装了Android Studio的机器,但是没有用。 Android Studio确实加载了所有文件,但无法将项目"视为"项目。我只能打开Git文件。

    在第一次导入项目时(从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)但是我很高兴它有效。


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


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

    1
    2
    3
    4
    5
    .idea/
    .gradle/
    *.iml
    build/
    local.properties

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

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

  • 打开Android Studio
  • 导入项目
  • 浏览克隆的存储库中的build.gradle并将其打开
  • 就这样

    PS:Android Studio将通过maven获取gradle插件,假设您的build.gradle看起来与此类似:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // 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来导入项目并生成其余项目。


    我支持提交.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


    使用Android Studio 3.0进行测试

    您可能需要安装.ignore插件。

    您可以为Android自动生成.gitignore文件。
    右键单击文件夹并按照

    Add .gitignore file

    然后从左侧面板中选择Android,然后单击Generate

    Generate .gitignore file

    Android Studio将生成.gitignore文件,其中包含需要忽略的所有文件。

    摘自http://menukanows.com/how-to-add-gitignore-file-in-android-project/


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

    您有两种选择:

  • 基于目录的格式(您将拥有一个包含的.idea文件夹
    项目特定文件)
  • 基于文件的格式(配置文件.iws.ipr)
  • 参考:
    http://www.jetbrains.com/idea/webhelp/project.html

    提交版本控制的文件取决于以上内容:

  • 将.idea文件夹包含到版本控制中,排除workspace.xml
    tasks.xml
  • 版本控制.ipr文件和所有.iml模块文件,排除
    .iws文件,因为它存储用户特定的设置。
  • 参考:
    https://intellij-support.jetbrains.com/entries/23393067


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

    一个好的测试是克隆您的仓库并查看Android Studio是否能够立即解释并运行您的项目(生成缺少的内容)。
    如果没有,找到缺少的东西,并确保它不被忽略,但添加到repo。

    话虽这么说,你可以举例说明现有的.gitignore文件,比如Android文件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    # 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/


    我更喜欢添加.iml文件和Intellij sez来添加.idea文件夹但忽略.idea / workspace.xml和.idea / tasks.xml,但是.idea / libraries /?

    我没有看到添加它有多大意义。它有一个XML文件列表,列出了Android Studio项目应该知道的库。这些应该来自build.gradle定义的依赖项 - 而不是IDE项目文件。

    其中一个文件的内容如下所示:

    1
    2
    3
    <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相关您正在使用的版本。)这些路径不是通用的,但建议是检查所有这些?


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

    1
    2
    3
    4
    5
    6
    .gradle
    /local.properties
    /.idea/workspace.xml
    /.idea/libraries
    .DS_Store
    /build

    为了获得更好的想法,您只需要以下文件

    • 应用
    • 的build.gradle
    • settings.gradle

    Basic Android project structure

    您可以将其他所有内容放在.gitignore文件中。您的所有应用更改主要位于这些文件和文件夹中。您在基本项目中看到的其余部分是gradle构建文件或Android Studio配置文件。

    如果您使用的是Android Studio,则可以使用"导入项目"来成功构建项目。或者,您可以使用命令行构建,请按照使用Gradle构建Android项目。


    最好在开发时间之前添加.gitignore列表,以防止由于某些原因的预定义(复制/粘贴)列表而导致版本控制由于某种原因无法工作时出现未知的副作用。对于我的一个项目,忽略列表仅包括:

    1
    2
    3
    4
    5
    6
    .gradle
    .idea
    libs
    obj
    build
    *.log

    我知道这是一个古老的话题,肯定有很多选择,但我真的更喜欢Simon Whitaker的gibo。它使用起来非常简单,跨平台(mac,* nix和windows),并使用github gitignore repo,因此它(基本上)始终是最新的。

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

    1
    2
    3
    4
        $ gibo --upgrade
        From https://github.com/github/gitignore
         * branch            master     -> FETCH_HEAD
        Current branch master is up to date.

    搜索您需要的语言/技术:

    1
    2
        $ gibo --search android
        Android

    显示.gitignore文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
        $ 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文件中:

    1
        $ gibo Android >> .gitignore

    (确保使用>>附加到项目的.gitignore文件;一个>将覆盖它 - 因为我已经多次意外!)

    我知道这不是回答OP的确切问题,但是使用gibo可以让你几乎不用再考虑"问题"了! .. 这真好! ;)


    我合并了Github .gitignore文件

    • Android.gitignore
    • JetBrains.gitignore
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    ### 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支持:如何在版本控制系统下管理项目


    Github为各种项目维护有用的gitignore项目。
    这是android项目的有用gitignore项目列表。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    # 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


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

    1
    2
    3
    4
    5
    6
    7
    .gradle
    /local.properties
    /.idea/workspace.xml
    /.idea/libraries
    .DS_Store
    build/
    /captures

    我同意这个陈述,但我修改此文件进行更改
    / build to build /
    (这将包括/ build和/ app / build)
    所以我最终没有在我的存储库中的app / build中的所有文件。

    另请注意,如果从Eclipse导入项目,则不会复制.gitignore,也不会为您"自动"创建.gitignore。


    使用gitignore.io提供的api,您可以自动生成。这是直接链接gitignore.io/api/androidstudio

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    ### 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
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    #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/


    为了避免导入所有文件,Android Studio忽略"忽略的文件"列表,但仍然使用Android Studio VCS,我执行了以下操作:
    这将使用Android Studio中的"忽略文件"列表(导入后!不在此期间)并避免使用Tortoise SVN设置svn:ignore列表的繁琐方式。

  • 使用Tortoise SVN存储库浏览器直接在存储库中创建新的项目文件夹。
  • 使用Tortoise SVN签出要导入的文件夹顶部的新文件夹。您将收到一条警告,指出本地文件夹不为空。忽略警告。现在您有一个带有无版本内容的版本化顶级文件夹。
  • 从本地工作目录打开您的项目。现在应该自动启用VCS
  • 在文件 - >设置 - >版本控制 - >忽略的文件中设置文件例外
  • 从Android Studio向SVN添加文件:在项目结构中选择"应用" - > VCS - >添加到VCS(这将添加除"忽略的文件"之外的所有文件)
  • 提交更改
  • 展望未来,"忽略的文件"将被忽略,您仍然可以从Android Studio管理VCS。

    干杯,
    -Joost


    JetBrains支持部门的官方文档说明应包括以下内容:

    1
    2
    3
    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

    它还提供了其他需要注意的事项建议。


    来自AndroidRate库的.gitignore

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    # 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

    https://github.com/github/gitignore是一个很棒的集合

    Android.gitignore

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    # 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

    忽略构建文件时遇到问题,但这似乎有效:-)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    # 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