我厌倦了不断看到有关Gradle在 /.idea 中创建或删除的各种 library.xml 文件的消息 . build.gradle 将在首次签出项目时在开发人员的本地运行,那么为什么这些XML文件需要进行版本化?当开发人员使用 Check out from Version Control 创建项目时,Android Studio还会生成 /.idea 的其余部分,那么为什么该文件夹中的任何内容都需要进行版本化?
# 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
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
# 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
29 回答
对于Android Studio,在版本控制中需要保存的唯一文件是使用gradle从命令行构建应用程序所需的文件 . 所以你可以忽略:
.idea
build
但是,如果保存任何IDE设置(例如自定义代码样式设置),它们将保存在.idea文件夹中 . 如果您希望在版本控制中进行这些更改,那么您也可以保存IDEA文件(* .iml和.idea) .
我合并了Github .gitignore文件
Android.gitignore
JetBrains.gitignore
请阅读:JetBrains Support: How to manage projects under Version Control Systems
Updated 7/2015:
这是definitive source from JetBrains
基于目录的项目格式(.idea目录)
默认情况下,所有最新的IDE版本都使用此格式 . 以下是您需要分享的内容:
项目根目录
.idea
目录下.idea
目录下的所有文件workspace.xml
和tasks.xml
文件存储用户特定设置所有可以位于不同模块目录中的
.iml
模块文件(适用于IntelliJ IDEA)Be careful 关于分享以下内容:
产生签名版本的Android工件(将包含密钥库密码)
在IDEA 13及更早版本
dataSources.ids
中,datasources.xml
可以包含数据库密码 . IDEA 14 solves this problem .您可以考虑不要分享以下内容:
gradle.xml文件,请参阅this discussion
用户词典文件夹(以避免在其他开发人员具有相同名称时发生冲突)
959
.idea/libraries
下的XML文件,如果它们是 generated from Gradle 项目旧项目格式(
.ipr
/.iml
/.iws
文件).ipr
文件和所有.iml
模块文件, don't share.iws
文件,因为它存储用户特定设置虽然这些说明适用于IntelliJ IDEA,但它们对于Android Studio来说却是100%真实的 .
这是一个包含所有上述规则的
.gitignore
代码段:我的建议也是不要忽略.idea文件夹 .
我已经将一个基于Git的Eclipse项目导入Android Studio,并且运行良好 . 后来,我想用Git(就像第一次)将这个项目导入另一台安装了Android Studio的机器,但是没有用 . Android Studio确实加载了所有文件,但无法将项目“视为”项目 . 我只能打开Git文件 .
在第一次导入项目时(从Eclipse到Android Studio),我的旧.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可以加载文件和Project . 我猜有些文件对于Git和导入并不重要
(profiles_settings.xml)
但是我很高兴它有效 .我不同意所有这些答案 . 以下配置适用于我们组织的应用程序 .
我忽略了:
/build
/.idea
(可能有例外,请参阅dalewking's answer中的评论)*.iml
local.properties
我想几乎每个人都同意
/build
.我厌倦了不断看到有关Gradle在
/.idea
中创建或删除的各种library.xml
文件的消息 .build.gradle
将在首次签出项目时在开发人员的本地运行,那么为什么这些XML文件需要进行版本化?当开发人员使用Check out from Version Control
创建项目时,Android Studio还会生成/.idea
的其余部分,那么为什么该文件夹中的任何内容都需要进行版本化?如果
*.iml
是版本化的,则新用户必须将项目命名为与提交时完全相同 . 既然这也是一个生成的文件,为什么它首先出现呢?local.properties
文件指向SDK文件系统上的绝对路径,因此绝对不应对其进行版本控制 .Edit 1 :添加了
.gradle
以忽略不应该版本化的gradle缓存内容(感谢Vasily Makarov) .Edit 2 :现在添加
.DS_Store
我正在使用Mac . 此文件夹是Mac特定的,应该 not 版本 .Additional note :您可能还想在构建发布版本时添加一个目录来放置签名密钥 .
For copy/paste convenience :
基本上任何自动重新生成的文件 .
一个好的测试是克隆你的repo,看看Android Studio是否能够立即解释和运行你的项目(生成缺少的东西) .
如果没有,找到缺少的东西,并确保它不被忽略,但添加到repo .
话虽这么说,你可以举例说明现有的
.gitignore
文件,如Android one ..gitignore来自AndroidRate library
https://github.com/github/gitignore是很棒的收藏品
Android.gitignore
我支持提交.idea文件夹(不包括
workspace.xml
和tasks.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开始,0.8.4
.gitignore
文件在启动新项目时自动生成 . 默认情况下,它包含:为了获得更好的想法,您只需要以下文件即可
app
build.gradle
settings.gradle
您可以将其他所有内容放在.gitignore文件中 . 您的所有应用更改主要位于这些文件和文件夹中 . 您在基本项目中看到的其余部分是gradle构建文件或Android Studio配置文件 .
如果您使用的是Android Studio,则可以使用"Import project"成功构建项目 . 或者,您可以使用命令行构建,请按照Building Android Projects with Gradle .
对于Android Studio 3.0项目,请使用以下内容:
.gitignore
Gradle项目文件夹
在存储库克隆之后,您的(Gradle)项目文件夹中唯一应该是这种结构(至少对于我到目前为止遇到的用例):
为了避免导入所有文件,其中Android Studio忽略“忽略的文件”列表,但仍然使用Android Studio VCS,我执行了以下操作:这将使用Android Studio中的“忽略的文件”列表(导入后!不在此期间)并且避免使用繁琐的方式Tortoise SVN设置svn:ignore列表 .
使用Tortoise SVN存储库浏览器直接在存储库中创建新项目文件夹 .
使用Tortoise SVN签出要导入的文件夹顶部的新文件夹 . 您将收到一个警告,指出本地文件夹不为空 . 忽略警告 . 现在您有一个带有无版本内容的版本化顶级文件夹 .
从本地工作目录打开您的项目 . 现在应该自动启用VCS
在文件 - >设置 - >版本控制 - >忽略的文件中设置文件例外
从Android Studio向SVN添加文件:在项目结构中选择'App' - > VCS - >添加到VCS(这将添加除"Ignored Files"之外的所有文件)
提交更改
展望未来,“忽略的文件”将被忽略,您仍然可以从Android Studio管理VCS .
干杯, - 快
我用这个.gitignore . 我找到了:http://th4t.net/android-studio-gitignore.html
我知道这是一个古老的话题,肯定有很多选择,但我更喜欢Simon Whitaker的gibo . 它使用起来非常简单,跨平台(mac,* nix和windows),并使用github gitignore repo,因此它(基本上)始终是最新的 .
确保您的本地缓存是最新的:
搜索您需要的语言/技术:
显示.gitignore文件:
现在,将它附加到项目的.gitignore文件中:
(确保使用
>>
附加到项目的.gitignore文件;一个>
将覆盖它 - 因为我已经多次意外!)我知道这不是回答OP的确切问题,但是使用gibo使得你几乎不必再考虑“问题”了! .. 这真好! ;)
This JetBrains支持的官方文档说明应包括以下内容:
它还提供了其他需要注意的建议 .
Tested with Android Studio 3.0
您可能需要安装 .ignore 插件 .
您可以为Android自动生成.gitignore文件 . 右键单击文件夹并按照
然后从左侧面板中选择Android,然后单击 Generate
Android Studio将生成.gitignore文件,其中包含需要忽略的所有文件 .
取自http://menukanows.com/how-to-add-gitignore-file-in-android-project/
无需添加到源控件以下任何一项:
因此,您可以相应地配置hgignore或gitignore .
开发人员第一次克隆源控件时可以:
打开Android Studio
导入项目
浏览克隆的存储库中的build.gradle打开它
就这样
PS:Android Studio将通过maven获取gradle插件,假设您的build.gradle看起来与此类似:
Android studio将生成.idea文件夹的内容(包括workspace.xml,因为 it is generated 而不应该在源代码管理中)和.gradle文件夹 .
这种方法对Eclipse非常友好,因为源代码控制对Android Studio一无所知 . Android Studio只需要build.gradle来导入项目并生成其余的项目 .
在我的普通Android .gitignore的基础上,在阅读了Intellij IDEA网站上的文档并阅读StackOverflow上的帖子后,我构建了以下文件:
另请注意,正如所指出的,当您使用Android NDK构建自己的本机代码时,构建的本机文件部分非常有用 . 另一方面,如果您使用的是包含这些文件的第三方库,您可能希望从.gitignore中删除这些行(* .o和* .so) .
最好在开发时间之前添加.gitignore列表,以防止由于某个地方的预定义(复制/粘贴)列表而导致版本控制由于某种原因无法工作时出现未知的副作用 . 对于我的一个项目,忽略列表仅包括:
从Android Studio开始,0.8.4 .gitignore文件在启动新项目时自动生成 . 默认情况下,它包含:
我同意这个说法,但是我修改了这个文件来改变/构建到build /(这将包括/ build和/ app / build)所以我最终没有得到我的存储库中app / build中的所有文件 .
另请注意,如果从Eclipse导入项目,则不会复制.gitignore,也不会为您“自动”创建.gitignore .
Updated to Android Studio 3.0 请在评论中分享缺失的项目 .
一个迟到的答案,但这里没有答案和here对我们来说是正确的...
所以,这是我们的gitignore文件:
从Android Studio 2.2到3.0,使用此gitignore文件创建新项目:
Deprecated - 对于较旧的项目格式,请将此部分添加到您的gitignore文件中:
此文件应位于项目的根文件夹中,而不是位于项目的模块文件夹中 .
Edit Notes:
从版本0.3开始,您似乎可以提交并推送 *.iml 和 build.gradle 文件 . 如果您的项目基于Gradle:在新的打开/导入对话框中,您应该选中
"use auto import"
复选框并标记"use default gradle wrapper (recommended)"
单选按钮 . 所有路径现在都是@George建议的相对路径 .根据@ 128KB attached source和@Skela建议更新了答案
我更喜欢添加.iml文件和Intellij sez来添加.idea文件夹但忽略.idea / workspace.xml和.idea / tasks.xml,但是.idea / libraries /?
我不知道添加它有多大意义 . 它有一个XML文件列表,列出了Android Studio项目应该知道的库 . 这些应该来自build.gradle定义的依赖项 - 而不是IDE项目文件 .
其中一个文件的内容如下所示:
提交这个没有意义 . 如果用户为gradle指定了不同的主目录,或者如果他们使用不同的gradle版本,那么
.gradle/caches/artifacts-xxx
下的路径对于他们来说会有所不同(即artifacts-
末尾附加的数字将与您发布的gradle版本相关使用 . )这些路径不是通用的,但建议是检查所有这些?这是通过here生成
.gitignore
的最佳方法取决于您的项目格式的维护方式:
你有两个选择:
基于目录的格式(您将拥有一个包含项目特定文件的
.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
Github为各种项目维护有用的gitignore项目 . 这是android项目的有用gitignore项目列表 .
Android Gitignore in github
汇编: