为什么不建议将 Eclipse 项目文件夹作为 Git 存储库?

26
当将项目共享为git并尝试将Eclipse项目文件夹设置为git存储库时,Eclipse会提示不建议这样做,并且应该将其放在Eclipse工作区之外。这是为什么呢?

2
从没听说过这个声明。你应该将 Eclipse 元数据从 Git 中排除(--> .gitignore),但仅此而已。 - KingCrunch
1
似乎EGit开发人员并没有真正使用他们自己的产品...这就是为什么。 - anton1980
2个回答

18

来自Eclipse EGit帮助页面

将项目设为存储库的根文件夹可能不是一个好主意

原因是您将永远无法向此存储库添加另一个项目,因为.project文件将占用根文件夹。您仍然可以将项目添加为子文件夹,但这种项目嵌套已知会导致许多问题。为了添加另一个项目,您必须将该项目移动到存储库的子文件夹中,并在提交此更改之前将第二个项目作为另一个子文件夹添加。

更多信息:

最好将存储库放在Eclipse工作区之外

有几个原因:

新存储库将考虑Eclipse工作区的完整文件夹结构作为(潜在)内容。例如,在提交之前计算更改时(将扫描.complete .metadata文件夹),这可能会导致性能问题。往往情况下,工作区将包含死文件夹(例如删除的项目),它们在语义上对EGit不重要,但很难被排除。

元数据(.git-)文件夹将是Eclipse Workspace的子文件夹。不清楚这是否会导致Eclipse执行不必要的文件夹遍历。

您可以通过销毁Eclipse Workspace轻松销毁存储库


18

虽然我同意将代码库放在Eclipse工作区之外,但是我仍然会在Eclipse项目根目录中创建一个git代码库,就像这个答案中提到的那样。

除非您的程序由许多相互依赖的小项目组成,否则我建议将一个git代码库限制为一个Eclipse项目。
Git代码库记录的是树状结构的内容,如果该树状结构代表一个项目,那么更容易管理、打标签、分支、合并(作为一个一致的文件集)。
如果它代表多个项目,则不再确定"1.0"这样的标签对于Git代码库中每个项目的含义。

此外,我喜欢将.project.classpath.settings添加到Git代码库中(如"Git默认是否从新的存储库中排除eclipse项目文件?")


2
你的.git仓库位置很好,但为了使项目不依赖于特定的IDE,建议不要提交.project.classpath.settings文件。 - Ahmed Nabil
2
@YajliMaclo,我从来没有理解过共享IDE特定的配置文件有什么问题。项目中的所有人都应该使用相同的编译器版本和相同的库。不同的IDE通常不共享配置,即使它们这样做,也是具有相同含义的。 - Vito De Tullio
假设你的团队有两种类型的开发人员,其中一种使用 Eclipse,另一种使用 Netbeans,因此共享 IDE 特定的配置文件不是一个好主意,可能会在从存储库导入项目时引起问题。 - Ahmed Nabil
@YajliMaclo 我 曾经 和使用 Eclipse、Intellij(还有一个人用 Vim)的同事一起开发过同一个项目。我们完全没有遇到任何问题;唯一的“问题”就是项目的设置分成了两组人(在几天内有一些人使用 Java7,而其他人已经转向了 Java9)。 - Vito De Tullio
@VitoDeTullio 那Java 8在这个故事中呢? ;) - Line

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接