res*_*ode 1210 git gitignore android-studio
我.gitignore
的Android Studio项目应该包含哪些文件?
我已经看到几个例子都包括.iml
但IntelliJ文档说.iml
必须包含在你的源代码管理中.
Lio*_*luz 1293
已更新至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
Run Code Online (Sandbox Code Playgroud)
从Android Studio 2.2到3.0版本,使用此gitignore文件创建了新项目:
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
Run Code Online (Sandbox Code Playgroud)
不推荐使用 - 对于较旧的项目格式,请将此部分添加到您的gitignore文件中:
/*/out
/*/*/build
/*/*/production
*.iws
*.ipr
*~
*.swp
Run Code Online (Sandbox Code Playgroud)
此文件应位于项目的根文件夹中,而不是位于项目的模块文件夹中.
编辑笔记:
从版本0.3+开始,您似乎可以提交并推送*.iml和build.gradle文件.如果您的项目基于Gradle:在新的打开/导入对话框中,您应该选中"use auto import"
复选框并标记"use default gradle wrapper (recommended)"
单选按钮.所有路径现在都是@George建议的相对路径.
根据@ 128KB 附加源和@Skela建议更新了答案
Phi*_*hil 148
基于我的普通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
Run Code Online (Sandbox Code Playgroud)
另请注意,正如所指出的,当您使用Android NDK构建自己的本机代码时,构建的本机文件部分非常有用.另一方面,如果您使用的是包含这些文件的第三方库,您可能希望从.gitignore中删除这些行(*.o和*.so).
Sky*_*sey 80
2015年7月更新:
默认情况下,所有最新的IDE版本都使用此格式.以下是您需要分享的内容:
.idea
目录中的项目的根目录,除了在workspace.xml
和tasks.xml
文件用于存储用户的特定设置.iml
可以位于不同模块目录中的所有模块文件(适用于IntelliJ IDEA)分享以下内容时要小心:
dataSources.ids
,datasources.xml
可以包含数据库密码.IDEA 14 解决了这个问题.您可以考虑不要分享以下内容:
.idea/libraries
如果是从Gradle项目生成的 XML文件旧项目格式(.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
Run Code Online (Sandbox Code Playgroud)
the*_*ang 40
我不同意所有这些答案.以下配置适用于我们组织的应用程序.
我忽略了:
/build
/.idea
(可能有例外,请参阅dalewking答案中的评论)*.iml
local.properties
我想几乎所有人都同意/build
.
我厌倦了不断看到有关library.xml
Gradle创建或删除的各种文件的消息/.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
Run Code Online (Sandbox Code Playgroud)
小智 36
我用这个.gitignore.我发现它在:http://th4t.net/android-studio-gitignore.html
*.iml
*.iws
*.ipr
.idea/
.gradle/
local.properties
*/build/
*~
*.swp
Run Code Online (Sandbox Code Playgroud)
小智 34
对于Android Studio,在版本控制中需要保存的唯一文件是使用gradle从命令行构建应用程序所需的文件.所以你可以忽略:
但是,如果保存任何IDE设置(例如自定义代码样式设置),它们将保存在.idea文件夹中.如果您希望在版本控制中进行这些更改,那么您也可以保存IDEA文件(*.iml和.idea).
小智 18
我的建议也是不要忽略.idea文件夹.
我已经将一个基于Git的Eclipse项目导入Android Studio,并且运行良好.后来,我想用Git(就像第一次)将这个项目导入另一台安装了Android Studio的机器,但是没有用.Android Studio确实加载了所有文件,但无法将项目"视为"项目.我只能打开Git文件.
在第一次导入项目时(从Eclipse到Android Studio),我的旧.gitignore被覆盖了,新的看起来像这样:
所以,我试图使用一个空的gitignore,现在它工作了.另一个Android Studio可以加载文件和项目.我猜有些文件(profiles_settings.xml)
对于Git和导入并不重要,但我很高兴它有效.
Wil*_*zel 18
如果使用Android Studio 3.2创建Gradle项目,该.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
Run Code Online (Sandbox Code Playgroud)
我建议忽略完整的".idea"目录,因为它包含特定于用户的配置,对构建过程没有任何重要意义.
在存储库克隆之后,您的(Gradle)项目文件夹中唯一应该是这种结构(至少对于我到目前为止遇到的用例):
app/
.git/
gradle/
build.gradle
.gitignore
gradle.properties
gradlew
gradle.bat
settings.gradle
Run Code Online (Sandbox Code Playgroud)
小智 8
我支持提交.idea文件夹(不包括workspace.xml
和tasks.xml
).但我开始得出结论,应该忽略.iml文件.
这是问题:
例如,在一个名为"foo"的目录中打开一个项目,你将得到foo.iml并且一切看起来都很好.问题是,如果我只是在尝试在Android Studio中打开项目时将目录重命名为foo2(或将其克隆到另一个目录名称),您将获得三件事:
当项目存储在不同的目录中时,我无法阻止Android Studio执行此iml文件生成.将它们添加到源代码控制将导致问题.因此我想也许我们应该忽略*.iml文件和.idea/modules.xml
无需添加到源控件以下任何一项:
.idea/
.gradle/
*.iml
build/
local.properties
Run Code Online (Sandbox Code Playgroud)
因此,您可以相应地配置hgignore或gitignore.
开发人员第一次克隆源控件时可以:
就这样
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()
}
}
Run Code Online (Sandbox Code Playgroud)
Android studio将生成.idea文件夹的内容(包括workspace.xml,由于生成它而不应该在源代码管理中)和.gradle文件夹.
这种方法对Eclipse非常友好,因为源代码控制对Android Studio一无所知.Android Studio只需要build.gradle来导入项目并生成其余项目.
使用Android Studio 3.0进行测试
您可能需要安装.ignore插件.
您可以为Android自动生成.gitignore文件.右键单击文件夹并按照
然后从左侧面板中选择Android,然后单击Generate
Android Studio将生成.gitignore文件,其中包含需要忽略的所有文件.
摘自http://menukanows.com/how-to-add-gitignore-file-in-android-project/
小智 6
取决于您的项目格式的维护方式:
您有两种选择:
.idea
包含项目特定文件的文件夹).iws
和.ipr
)参考:http: //www.jetbrains.com/idea/webhelp/project.html
提交版本控制的文件取决于以上内容:
workspace.xml
和
tasks.xml
.ipr
文件和所有.iml
模块文件,在.iws
存储用户特定设置时排除文件.参考:https: //intellij-support.jetbrains.com/entries/23393067
基本上是任何自动重新生成的文件。
一个很好的测试是克隆您的存储库,并查看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/
Run Code Online (Sandbox Code Playgroud)
从 Android Studio 0.8.4 开始,.gitignore
启动新项目时会自动生成文件。默认情况下它包含:
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
Run Code Online (Sandbox Code Playgroud)
使用gitignore.io提供的 api ,可以得到自动生成的。这也是直接链接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
Run Code Online (Sandbox Code Playgroud)