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

ian*_*ayo 45 java eclipse git

我只是从svn转到git,我很想奠定一些好的基础.

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

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

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

leo*_*loy 28

我也在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)
Run Code Online (Sandbox Code Playgroud)

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

~/repositories/XXX/ 
~/repositories/YYY/ 
Run Code Online (Sandbox Code Playgroud)

然后,使用新的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/
Run Code Online (Sandbox Code Playgroud)

当您单击Team-> Share over a existing project并指定(在示例中)~/repositories/XXX/.git/作为存储库时,Eclipse(EGit)会为您完成所有这些操作(~/repositories/XXX/作为"工作目录",将"存储库中的路径"留空).

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

  • 你碰巧与不同意的人有一两个联系吗?因为我发现"共同"智慧的逻辑"方法并不完全令人信服.所有给出的理由都适用于你将工作空间作为存储库而不是项目存储库的情况.注意我同意这似乎是日食的推荐路径,但我不相信他们是对的:). (2认同)
  • 您可以在项目级别创建存储库.因此,您根本不必移动项目,也没有链接到的文章中列出的任何问题.这假设您在存储库中不需要多个项目. (2认同)
  • 这就是我所说的链接.它给出的原因仅适用于将.git放在工作区级别,而不是将其放在项目级别.如果它在项目级别,那么没有.metadata和.git它不是工作区的直接子项.另一个没有明确描述的"笨拙"吗? (2认同)