使用Git在IntelliJ上进行Scala:.gitignore应该如何?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Git在IntelliJ上进行Scala:.gitignore应该如何?相关的知识,希望对你有一定的参考价值。

注意:此问题特定于Scala项目。我想让Scala编译并从IntelliJ内部成功运行,无需任何先前的配置。

我使用IntelliJ IDEA创建了一个包含Scala示例的测试项目,并将其发布到GitHub。

项目结构如下所示:

Project Structure

我目前的.gitignore看起来像这样:

*.class
*.log
target/
.idea/
project/

这导致存储库看起来像这样:

GitHub repository structure

现在我要做的是:

使用Scala示例代码很酷,但我也希望将此项目用作使用IntelliJ的Scala项目的模板。

那么,我应该如何最好地更改我的.gitignore文件,所以每当我克隆项目时,我都可以用IntelliJ打开它并让一切工作正常?当然,这会排除目标目录,所以每当我克隆它时我都需要重新编译项目。

答案

假设您使用SBT在IntelliJ中构建项目,您应该过滤掉以下目录:

project/target/
target/

(实际上,只需添加target/过滤器。)

这些目录包含从您的源生成的SBT输出,不应置于版本控制之下。

如果在您的项目上工作的每个人都在使用IntelliJ时处理代码,那么您应该添加所有./.idea目录,但以下情况除外:

.idea/.name
.idea/libraries/
.idea/modules/
.idea/modules.xml
.idea/scala_compiler.xml
.idea/tasks.xml
.idea/workspace.xml
.idea_modules/

(您可能还需要考虑将.idea/sbt.xml添加到此列表中。它有来自SBT的一些冗余信息,但也有一些IntelliJ SBT配置设置。由您决定...)

这些文件和目录包含IntelliJ从SBT收集的信息(因此是冗余的)或包含机器和/或用户特定的信息,如果在不同的机器上或由不同的用户签出,将产生问题。

如果SBT是主要的构建工具,并且人们可以使用他们喜欢的任何IDE,那么忽略整个.idea目录可能会更好。

另一答案

您必须提交/project目录,因为它包含build.propertiesplugins.sbt等重要信息。

你应该忽略/project/target你也应该忽略*.iml

另一答案

我建议使用网站https://gitignore.io,它会根据你的环境为你建立一个.gitignore文件。

这里忽略了你不应该为基于Scala / SBT / Windows / Vim的项目提交的所有内容:

https://gitignore.io/api/git,sbt,scala,windows,intellij,vim

以上是关于使用Git在IntelliJ上进行Scala:.gitignore应该如何?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Scala 3 枚举上进行模式匹配

技术Scala从零开始:使用Intellij IDEA写hello world

Git 和 Github。是不是可以在 Github 而不是 Git 上进行提交?

使用 sbt 将 Scala 与 Hive 数据库连接起来,使用 IntelliJ 进行依赖

使用 cygwin 和 git bash 在 Windows 10 上进行 Shell 脚本评估失败

在 Scala 中替代 println