eclipse和git的工作区和repo路径安排

时间:2016-12-15 19:22:27

标签: eclipse git repository egit workspace

我见过类似的问题,但有些问题已经很老了,有些问题并不是我正在寻找或没有答案。

我在/workspace/project1/workspace/project2下的Eclipse中有项目。它们是Gradle项目,彼此依赖。我也有/workspace/project3这是一个Gradle项目但是独立。

我需要将它们“上传”到Bitbucket上的git repo。我安装了EGit来帮助我。它问我当地的回购地点在哪里,我不知道该说些什么。我应该为每个工作区或每组依赖项目创建一个仓库还是什么?

例如,当我右键单击某个项目并按Team > Share > Git时,我会进入此对话框,但我不知道应该填写哪些内容。

enter image description here

2 个答案:

答案 0 :(得分:1)

要理解/记住的一些事情:

  • Eclipse工作区是项目的逻辑容器,不一定是物理容器。工作空间所在的文件夹也可以是项目的物理容器,这意味着项目的文件可以位于工作空间文件夹下的文件夹中(如果在Eclipse中创建新项目,这是默认位置)。但这不是必要条件;工作空间中包含的项目可以使其内容(文件)位于文件系统的任何位置。
  • 在大多数开发设置中,本地git repos位于用户主目录中的“标准”位置,即%USER_HOME%/git/name-of-repo。同样,这不是一个硬性要求,用户可以选择在他们选择的任何位置克隆或创建回购。

因此Eclipse eGit向您展示了这两个轴的灵活性。它询问您要在哪里创建本地git仓库,这通常与您的工作区文件夹不同。使用“创建...”按钮创建它。我认为在那时它会自动填充存储库字段中的 Path。如果没有,您可以将该路径命名为您想要的任何内容(通常与项目名称相同,但不一定如此)

在它的最后,你将拥有你的工作区(逻辑容器)以及一个本地git仓库,它将是项目内容的物理位置。

答案 1 :(得分:1)

每个(non-bare)git存储库都有一个工作目录,其中存储了当前签出的提交文件(称为HEAD)。

默认情况下,工作目录是git元数据目录(名为.git)的父目录,但可以通过config setting分离。例如:git config core.worktree /path/to/workdir

EGit无法处理具有分离工作目录的存储库,如下所示:EGit working directory not under the local repository

但无论此限制如何,您都无法在多个工作区之间拆分git存储库的工作目录。

因此,您应该将项目移动到工作目录以使其类似于此结构:

~/git/my-repo/.git
~/git/my-repo/project1
~/git/my-repo/project2
~/git/my-repo/project3

如果project3独立于其他人,则可能会保留在原来的位置或完全位于其他地方。

当计划将相互依赖的项目分布在几个git存储库中时要谨慎。这使得git存储库也有效地相互依赖,但没有git具有依赖管理工具。

要让EGit移动项目,您可以在 Path in repository 输入字段中输入project1

常用的构建文件(如master pom.xml或相应的Gradle文件)将位于工作目录的根目录中。这也简化了Travis,Codeship和朋友等流行构建服务的配置。