什么文件应该在我的。gitignore为一个Android工作室项目?

我见过几个包含。iml的例子,但是IntelliJ文档说。iml必须包含在你的源代码控制中。


当前回答

最好在整个开发过程中添加.gitignore列表,以防止版本控制由于某处预定义的(复制/粘贴)列表而无法工作时产生未知的副作用。对于我的一个项目,忽略列表只有:

.gradle
.idea
libs
obj
build
*.log

其他回答

取决于你的项目格式是如何维护的:

你有两个选择:

基于目录的格式(您将有一个.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 0.8.4开始,启动新项目时自动生成gitignore文件。 默认情况下,它包含:

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

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

* .iml .idea 构建

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

我是kosher添加。iml文件和Intellij sez添加。idea文件夹,但忽略。idea/workspace.xml和。idea/tasks.xml,但。idea/libraries/呢?

我不明白加这个有什么意义。它有一个XML文件列表,列出了Android Studio项目应该知道的库。这些应该来自于构建。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下的路径对他们来说将是不同的(即工件-在末尾追加的数字将与您正在使用的gradle版本发布相关)。这些路径不是通用的,但建议是检查所有这些?

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

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

*/build/

*~
*.swp