2016-12-15 44 views
1

我见过类似的问题,但有些是非常古老的,有些不是我正在寻找或没有答案。工作区和回购路径安排日食和混帐

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

我需要将它们“上传”到Bitbucket上的git仓库。我安装了EGit来帮助我解决这个问题。它询问我本地回购所在的位置,我不知道该说些什么。我应该为每个工作区或每个从属项目组创建一个回购或什么?

例如,当我右键单击一个项目,然后按Team > Share > Git我到这个对话框,我不知道我应该填写什么。

enter image description here

回答

1

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

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

例如:It不能与具有分离的工作目录库处理如下回答: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移动项目,您需要在输入字段内的路径中输入project1

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

+0

为什么我需要一个my-repo级别? 'git'里面有同样的东西吗? – Mark

+0

'my-repo'是保存您的存储库的目录,应相应地命名。您可以省略'git'目录,尽管通常情况下,您将拥有多个存储库,并且大多数人将所有存储库分组到一个公共父目录中。但这纯粹是一个组织方面。 –

+0

所以在这里你假设项目1到3都在同一个回购,即使3是独立的,1和2是依赖的? – Mark

1

几件事要明白/记住:

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

因此,Eclipse eGit向您展示了这2轴的灵活性。它是问你想在哪里创建你的本地git仓库,这通常与你的工作空间文件夹不同。使用创建...按钮来创建它。我认为在这一点上它会自动填充库中的路径字段。如果没有,你能说出你想要的任何路径(通常它同样作为项目名称,虽然不一定)

在这一切结束时,你就会有你的工作空间(逻辑容器)以及一个当地的git仓库,它将成为项目内容的物理位置。

+0

所以在这个操作之后,这些项目将*从工作区目录移动到git仓库目录(不会被复制)。只是想确保我避免了我有两份我的代码的情况,就像我在其他问题中看到的一样。 – Mark

+0

老实说,我不确定它是否会移动文件。我只想尝试一下,然后检查两个位置以查看情况。 –

+0

如果您有兴趣:它确实将项目移出我的工作区并进入了git仓库。谢谢您的帮助。 – Mark