eclipse 和 git 的工作区和回购路径安排

Workspace and repo paths arrangement for eclipse and git

我见过类似的问题,但有些问题很老,有些不是我要找的或没有答案。

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

我需要 "upload" 它们到 Bitbucket 上的 git 回购。我安装了 EGit 来帮助我解决这个问题。它问我我的本地仓库在哪里,我不知道该告诉它什么。我应该为每个工作区或每组依赖项目创建一个存储库还是什么?

例如,当我右键单击一个项目并按 Team > Share > Git 时,我进入了这个对话框,但我不知道应该在那里填写什么。

有几件事要understand/keep记住:

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

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

最后,您将拥有工作区(逻辑容器)以及本地 git 存储库,这将是项目内容的物理位置。

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

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

EGit 无法处理具有分离工作目录的存储库,如下所述:

但不管这个限制如何,您都不能将 git 存储库的工作目录拆分到多个工作空间中。

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

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

如果 project3 独立于其他,它可能会保留在原处或完全位于其他地方。

计划将相互依赖的项目分布在多个 git 存储库时要小心。这使得 git 存储库也有效地相互依赖,但是 git 没有依赖管理工具。

要让 EGit 移动项目,您需要在 存储库中的路径 输入字段中输入 project1

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