我应该将Git存储库存储在Home还是Eclipse Workspace中?

我只是从svn转到git,并且渴望打下一些好的基础。

默认情况下,Eclipse希望将我的本地克隆存储库存储在〜/ git中。 我更愿意将一个任务的所有数据保存在同一个工作区中 – 所以我倾向于将它保留在我的工作区中。

有什么重大的利弊我应该考虑?

我不打算做很多分支 – 我真的要去dvcs路线主要是为了克服一些不可靠的互联网通信问题。

我也在Eclipse中转换到Git,并阅读有关这个​​问题。 看来, 目前的智慧 (虽然不是每个人都同意)是:

  • 习惯于不让你的项目在工作区目录下面。

  • 为每个相关的eclipse项目组提供一个git仓库(当然也许还有更多的文件)。 “相关项目”的概念取决于您的方便[*]

  • 对于每个存储库,每个Java项目都有一个第一级目录。 这意味着你将拥有一个.git/目录,并且在同一级别,项目目录。

例如:假设“在GIT之前”,你有一个有几个项目的eclipse工作区:

 /wk/workspace/.metadata/ /wk/workspace/projXXX/ /wk/workspace/projXXXtest/ (related with the previous) /wk/workspace/projYYY1/ | /wk/workspace/projYYY2/ > three related projects /wk/workspace/projYYY3/ | /wk/workspace/projZ/ (a project you are not going to version in git) 

然后,您将创build两个空目录,每个存储库一个,说:

 ~/repositories/XXX/ ~/repositories/YYY/ 

之后,在新的GIT布局下,您将拥有:

 /wk/workspace/.metadata/ /wk/workspace/projZ/ ~/repositories/XXX/.git/ (XXX related repository - non-bare) ~/repositories/XXX/projXXX/ ~/repositories/XXX/projXXXtest/ ~/repositories/YYY/.git/ (YYY related repository - non-bare) ~/repositories/YYY/projYYY1/ ~/repositories/YYY/projYYY2/ ~/repositories/YYY/projYYY3/ 

Eclipse(EGit)在您单击Team-> Share over一个现有项目并指定(在示例中) ~/repositories/XXX/.git/ as存储库( ~/repositories/XXX/ as “Working directory “ ,将”库内的path“留空)。

[*]请记住,这里的每一组项目都是从Git的angular度来看,只是一个仓库内的一组目录。 一些相关的含义:在上面的例子中,你永远不会在Eclipse工作区中有两个不同的分支/版本的项目projYYY1projYYY2同时; 也就是说,当你标记一个项目提交时,你实际上是在标记完整的仓库(项目组)。

.git应该是你的工作树所在的位置(也就是表示当前正在工作的分支的当前HEAD的文件)

请记住,使用Git,分支不是目录(与SVN相反),所以你的工作树将直接代表分支内容,而不是几个目录(对于你的各个分支),然后是每个分支的内容。

我通常喜欢将我的项目源与Eclipse工作区分开,但这是一个偏好问题。

我想,把git版本树存储在工作区之外是个好主意。 通过这种方式,可以将项目从不同的存储库中分离出来,但仍然可以在同一个工作区中处理它们。

此外,如果将代码放在工作空间外部,则可以在工作空间之外(在工作副本中)以层级方式组织项目,但在Eclipse中仍然可以看到平面表示。