我应该在Home或Eclipse Workspace中存储git存储库吗?

时间:2011-10-07 09:18:35

标签: java eclipse git

我只是从svn转到git,我渴望奠定一些良好的基础。

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

我应该考虑哪些重要的利弊?

我不打算做大量的分支 - 我真的要走dvcs路线,主要是为了克服一些不可靠的互联网通信问题。

3 个答案:

答案 0 :(得分:28)

我也在Eclipse中切换到Git,并阅读了这个问题。似乎current wisdom(虽然不是每个人都同意)是:

  • 习惯于将项目放在工作区目录下面。

  • 每组相关的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)

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

~/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/
当您在现有项目上单击 Team-> Share 并指定(在示例中)~/repositories/XXX/.git/作为存储库时,Eclipse(EGit)会为您完成所有这些工作({{1作为“工作目录”,将“存储库中的路径”留空。)

[*]请记住,从Git的角度来看,每组项目都只是存储库中的一组目录。一些相关含义:在上面的示例中,您将永远不会在Eclipse工作区中同时拥有两个不同的项目分支/版本~/repositories/XXX/ - projYYY1;并且,比方说,当您标记项目提交时,您实际上是在标记完整的存储库(项目组)提交。

答案 1 :(得分:2)

.git应该是您的工作树所在的位置(即代表您正在处理的当前分支的当前HEAD的文件)

请记住,对于Git,分支不是目录(而不是SVN),因此您的工作树将直接表示分支内容,而不是几个目录(对于您的各个分支),后跟每个分支的内容。

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

答案 2 :(得分:2)

我认为,将git版本树存储在工作区之外是一个好主意。这样就可以将项目与不同的存储库分开,但仍然可以在同一个工作区中处理它们。

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