使用 Android Studio (1.0 RC4 Windows( 进行开发时,Mercurial 中应忽略哪些文件?
创建新的应用程序项目也会创建.gitignore
文件。我已将其翻译成以下.hgignore
文件
syntax: glob
.hgignore
.gradle
local.properties
.idea/workspace.xml
.idea/libraries
.DS_Store
build
但是当我为我的项目Add to VCS
时,一些不在忽略列表中的文件不会添加到 Mercurial 中。遗漏的文件是:
.idea.name
.ideacompiler.xml
.ideacopyrightprofiles_settings.xml
.ideaencodings.xml
.ideagradle.xml
.ideamisc.xml
.ideamodules.xml
.ideascopesscope_settings.xml
.ideavcs.xml
build.gradle
MyApplication.iml
gradle.properties
gradlewrappergradle-wrapper.jar
gradlewrappergradle-wrapper.properties
gradlew
gradlew.bat
settings.gradle
我应该将这些文件添加到忽略列表中,还是应该将它们添加到 VCS?
目前还不清楚应该如何处理.iml
文件。使用 AS 将项目添加到 Mercurial 将添加appapp.iml
文件,但使用 AS 将项目添加到 Git 将使该文件保持未跟踪状态。
我不想在VCS中跟踪多余的文件,但我不想错过存储重要文件。应该跟踪文件的来源有很多,但信息差异很大,很难得出任何明确的结论。
更新:我的.hgignore
文件的最终版本
syntax: glob
.hgignore
.gradle
local.properties
.idea
.DS_Store
build
*.iml
gradlew
gradlew.bat
为了在开发人员之间共享项目,必须将以下文件提交到 VCS,否则 AS 将无法在另一台计算机上导入项目:
gradle.properties
gradlewrappergradle-wrapper.jar
gradlewrappergradle-wrapper.properties
这就是我最终为基于 gradle 的 Android Studio (1.5( 项目得到的:
syntax: glob
*.iml
.gradle
.idea/dictionaries
.idea/libraries
.idea/tasks.xml
.idea/workspace.xml
build
gen
local.properties
我认为这是一个非常完整的列表。恕我直言,唯一有问题的选择是您是否忽略*.iml
文件。它们从build.gradle
复制信息,由Android Studio自动生成并不断更新,但另一方面,如果您决定不跟踪它们,新开发人员将需要"导入项目"而不是"打开现有的Android Studio项目"。
与其他答案相反,我强烈建议将所有 gradle 包装器文件检查到 VCS 中。包装器的目的是引导 gradle 的安装。例如,如果要设置自动生成,则只需签出项目,创建local.properties
或相应的环境变量并执行gradlew assemble
即可。然后,构建系统将自动安装gradle-wrapper.properties
中指定的 gradle 版本以执行assemble
任务。这是值得分享的宝贵信息。
另请查看这篇官方 JetBrains 支持文章:https://intellij-support.jetbrains.com/hc/en-us/articles/206827587-How-to-manage-projects-under-Version-Control-Systems
通过 .ignore 插件,您只需单击两次即可生成.hgignore
。打开根文件夹上的上下文菜单,选择"新建>> .ignore 文件>> .hgignore"。然后,对于Android Studio项目,只需勾选下面列出的复选框(模板(:
- 人造人
- 格拉德尔(可选(
- 捷脑
- 应用引擎(可选(
将syntax: glob
添加到生成的文件的顶部。
我建议您将上面列出的所有文件添加到.hgignore
,除了build.gradle
和settings.gradle
。目录中.idea
文件由Android Studio
自动生成,您不应跟踪它们或手动编辑它们。我认为你永远不需要编辑gradlew
或gradlew.bat
所以你也可以吸收它们。您可以添加gradle.properties
并在以后需要更改默认版本时gradle-wrapper.properties
(就个人而言,我也忽略了这两个版本(。
IntelliJ IDEA mercurial .hgignore 文件,用于常规 gradle/maven java 多项目,包括包装器(包装器也应该提交(
syntax: regexp
.gradle/*
.idea/*
syntax: glob
.git/*
*/out/*
*/build/*
*/target/*
.DS_Store
*.iml
*.ipr
*.iws
*.log