将Git存储库保留在Eclipse工作区内部或外部是否更好?

Jam*_*esG 39 eclipse git egit

我是一个典型的Eclipse/Subversion用户,开始迁移到Git.我研究了git的基本概念,并决定最初坚持每个存储库方法的一个项目,以保持简单.不过,我仍然遇到麻烦,决定在哪里为每个项目放置存储库.

我花了很多时间来回顾这个问题的答案,虽然我相信这个问题的作者假设如果存储库位于Eclipse工作区内,那么你只能使用Eclipse来管理存储库,当然,不对.

然而,最令我印象深刻的是,除了一个答案(包括已接受的答案)之外的所有答案都建议将存储库保留在Eclipse工作区内,而只有一个答案指出EGit用户指南建议完全相反.

然而,实际上似乎Eclipse/EGit实施了许多方法,其中一些方法似乎与EGit建议相矛盾.

例如,如果您使用New Project Wizard从Git创建一个New PHP Project并且存储库是远程的,Eclipse/EGit将很乐意在Eclipse工作区中创建一个项目文件夹,并将存储库(.git)放在项目文件夹中.这是我真正想要的最终结果,因为它保留了封装在Eclipse工作区中的所有内容.

但是,如果使用"新建项目向导"并选择本地的Git存储库,则Eclipse/EGit不会像对远程存储库那样克隆存储库.相反,它使用该存储库的工作副本作为项目位置,在该位置创建其.project和其他元数据,并在该工作副本中创建一个新的(看似不必要的)文件夹,其名称与项目相同(所以你结束例如, ~/git/blah/blah).如果删除多余的文件夹,最终会得到与第一个示例相同的结构,唯一的区别是项目文件夹不是Eclipse工作区文件夹的子文件夹,它位于文件系统的其他位置(例如.~/git/blah)这种方法似乎唯一有利的一点就是它遵守了EGit用户指南中的建议,但从技术角度来看,很难看出这与第一个例子有什么不同.

鉴于这些令人费解的观察结果,我想知道人们使用这些方法的经历是什么样的,如果忽略了EGit用户指南中的建议,可能会有什么陷阱.

Ban*_*zen 25

这两种解决方案的含义直接列在您链接的用户指南中.我可以告诉你那个部分

这可能会导致性能问题

不幸的是,这是真的.因此,如果您的工作空间中有一个包含大量文件的git目录,那么许多git操作将以"计数对象..."对话框开始,该对话框会阻止您的IDE,因为它会扫描工作区中的所有文件.对于我当前的20000个文件,这意味着每次提交,每个开关等待10到20秒......

在业余时间活动中,幸运的是我可以使用其他替代方案(在工作区外有git工作目录),一切都变得更加快捷,合并和切换很有趣.

因此,如果您选择大型项目,请将工作空间外的git目录视为首选.

  • @Bananeweizen您提到过您已经尝试在工作区外部使用git工作目录,而且一切都变得更加快捷.您的大型(20,000个文件)项目或更小的沙箱项目是否进行了其中一个实验?也就是说,你能明确地说工作区外的20,000文件项目工作得更顺畅吗? (3认同)
  • 这个答案以及指南中摘录的部分令人困惑。指南中的段落说“将存储库保留在 Eclipse 工作区之外是个好主意”,即_不要将存储库放在 Eclipse 工作区中_,并且作为原因,描述了一个**可以轻松避免的性能问题* * 使用 Eclipse 的资源过滤器 - 它们使 Eclipse 完全忽略 .git 文件夹,即使工作区一直刷新也是如此。绝对不应该做的是相反的,将整个 Eclipse 工作区(带有 .metadata 文件夹)置于 git 控制之下。 (2认同)