我只是从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
同时; 并且,比方说,当您标记项目提交时,您实际上是在标记完整的存储库(项目组)提交.