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

Dav*_*ann 25 eclipse git egit jgit

当将项目作为git共享并尝试将Eclipse项目文件夹作为git存储库时,Eclipse表示不建议这样做并且它应该在Eclipse工作区之外.

这是为什么?

Von*_*onC 18

虽然我同意将存储库保留在Eclipse工作区之外,但我仍然会在Eclipse项目根目录中创建一个git repo(就像在这个答案中一样).

除非你的程序由许多很小的相互依赖项目组成,否则我会将一个git repo限制为一个Eclipse项目.
git repo是关于记录树结构的内容,如果该树代表一个项目,则更容易管理,标记,分支,合并(作为一组连贯的文件).
如果它代表多个项目,那么您不再确定像"1.0"这样的标记代表Git仓库中每个项目的内容.

另外,我想补充的.project,.classpath.settings到Git的回购(如" 是否混帐从默认新回购排除Eclipse项目文件? ")

  • 你的 `.git` 存储库位置很好,但为了使项目独立于 IDE,建议不要提交 .`project`、`.classpath` 和 .`settings` (2认同)
  • @YajliMaclo 我一直不明白共享特定于 ide 的配置文件有什么问题。项目中的所有人都应该使用相同的编译器版本和相同的库。不同的 IDE 通常不共享配置,并且当它们共享时具有相同的含义。 (2认同)

cac*_*cba 17

Eclipse EGit帮助页面,

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

原因是您永远无法将另一个项目添加到此存储库,因为.project文件将占用根文件夹; 你仍然可以将项目添加为子文件夹,但是这种项目嵌套已知会在整个地方引起很多问题.要添加另一个项目,您必须将项目移动到存储库中的子文件夹,并将第二个项目添加为另一个子文件夹,然后才能提交此更改.

更多信息

将您的存储库保留在Eclipse Workspace之外是个好主意

有几个原因:

新的Repository会将Eclipse工作区的完整文件夹结构视为(潜在)内容.这可能会导致性能问题,例如在提交之前计算更改时(例如,将扫描完整的.metadata文件夹); 更多的,往往不是工作区将包含文件夹死(如删除的项目),其语义上是不相关的,但例如:It不能轻易排除.

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

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