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



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

我花了很多时间来回顾这个问题的答案,尽管我相信这个问题的作者假设只有当存储库位于 Eclipse 工作区中时,您才能使用 Eclipse 来管理存储库,这当然不是真的。

然而,关于

这个问题,最让我印象深刻的是,除了一个答案(包括公认的答案(之外,所有答案都建议将存储库保留在 Eclipse 工作区中,而只有一个答案指出 EGit 用户指南建议完全相反。

然而,在实践中,Eclipse/EGit似乎实现了许多方法,其中一些方法似乎与EGit的建议相矛盾。

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

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

鉴于这些令人费解的观察结果,我想知道人们使用这些方法中的每一种都有什么样的体验,以及如果忽略EGit用户指南中的建议,可能会有什么陷阱。

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

这可能会导致性能问题

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

业余活动中,幸运的是我可以使用另一种选择(在工作区之外使用 git 工作目录(,一切都感觉更快捷,合并和切换很有趣。

因此,如果您选择大型项目,请考虑工作区外的 git 目录作为首选。

我正在执行与原始海报相同的迁移,并发现了另一个线程,其中对 Egit 建议表达了相同的疑问:我应该将 git 存储库存储在 Home 还是 Eclipse Workspace?

@JamesG所以这是你的布局?

~/projectA/workspace/.metadata
~/projectA/workspace/subproj1/.project
~/projectA/workspace/subproj2/.project
~/projectA/subproj1/.git
~/projectA/subproj1/file1
~/projectA/subproj2/.git
~/projectA/subproj1/file2

最新更新