使用 Git 的 IntelliJ 上的 Scala:.gitignore 应该是什么样子?
Scala on IntelliJ with Git: How should the .gitignore look like?
注意:此问题特定于 Scala 项目。我想在没有任何事先配置的情况下从 IntelliJ 内部成功编译和 运行。
我使用 IntelliJ IDEA 创建了一个包含 Scala 示例的测试项目并将其发布到 GitHub。
项目结构如下所示:
我现在的 .gitignore
是这样的:
*.class
*.log
target/
.idea/
project/
这会生成如下所示的存储库:
现在我要做的是:
拥有 Scala 示例代码很酷,但我还想将此项目用作带有 IntelliJ 的 Scala 项目的模板。
那么,我应该如何最好地更改我的 .gitignore
文件,以便每当我克隆该项目时,我都可以使用 IntelliJ 打开它并使一切正常工作?
当然,这不包括目标目录,因此我需要在每次克隆项目时重新编译该项目。
您必须提交 /project
目录,因为它包含 build.properties
和 plugins.sbt
等重要信息。
你应该忽略 /project/target
你也应该忽略 *.iml
假设您正在使用 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 收集的信息(因此是冗余的),要么包含机器- and/or user-specific 如果在不同的机器上或由不同的用户检出会产生问题的信息。
如果 SBT 是主要的构建工具,人们可以使用他们喜欢的任何 IDE,它可能是最好忽略整个 .idea
目录。
我建议使用网站 https://gitignore.io,它会根据您的环境为您构建一个 .gitignore
文件。
这里忽略了你不应该为基于 Scala/SBT/Windows/Vim 的项目提交的所有内容:
注意:此问题特定于 Scala 项目。我想在没有任何事先配置的情况下从 IntelliJ 内部成功编译和 运行。
我使用 IntelliJ IDEA 创建了一个包含 Scala 示例的测试项目并将其发布到 GitHub。
项目结构如下所示:
我现在的 .gitignore
是这样的:
*.class
*.log
target/
.idea/
project/
这会生成如下所示的存储库:
现在我要做的是:
拥有 Scala 示例代码很酷,但我还想将此项目用作带有 IntelliJ 的 Scala 项目的模板。
那么,我应该如何最好地更改我的 .gitignore
文件,以便每当我克隆该项目时,我都可以使用 IntelliJ 打开它并使一切正常工作?
当然,这不包括目标目录,因此我需要在每次克隆项目时重新编译该项目。
您必须提交 /project
目录,因为它包含 build.properties
和 plugins.sbt
等重要信息。
你应该忽略 /project/target
你也应该忽略 *.iml
假设您正在使用 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 收集的信息(因此是冗余的),要么包含机器- and/or user-specific 如果在不同的机器上或由不同的用户检出会产生问题的信息。
如果 SBT 是主要的构建工具,人们可以使用他们喜欢的任何 IDE,它可能是最好忽略整个 .idea
目录。
我建议使用网站 https://gitignore.io,它会根据您的环境为您构建一个 .gitignore
文件。
这里忽略了你不应该为基于 Scala/SBT/Windows/Vim 的项目提交的所有内容: