64

我对 EGit 的工作原理有点困惑。

我在 Github 上有一个现有的 git 存储库,并希望将其克隆到我的工作区中。我的目标是将本地存储库直接存储在我的工作区文件夹中,但我没有让它与 EGit 一起使用。

当我想用 EGit 克隆 github repo 时,我必须选择一个目录作为目标。建议的目录在我的主目录中(不在我的工作区中)。当我选择这个目录时,我可以在 Eclipse 中看到该项目,但它没有存储在我的工作区文件夹中。相反,它存储在我的主目录中。

当我直接在我的工作区中选择一个目录时,稍后在导入项目时它说已经有一个具有此名称的目录。

我不知道如何解决这个问题。我认为这将是一个常见的场景。过去我使用过 hgEclipse (Mercurial),它的工作方式与我认为的完全一样,所以我很困惑 EGit 没有。也许我误解了什么。

知道这一点可能很重要:在 github 存储库中,没有来自 Eclipse 的 .project 或 .settings 文件。我将它们放在我的 .gitignore 中,因此在导入对话框中我必须选择“作为常规项目导入”而不是“导入现有项目”。但我认为这应该无关紧要?

我希望有人可以帮助我或向我解释为什么 EGit 插件默认情况下不会将存储库直接克隆到工作区中。

我的 Eclipse 版本是 3.6,我已经在标记的地方安装了 EGit。

4

6 回答 6

17

如本EGit 教程中所述,您在导入(克隆)Git 存储库时提到的目标目录是您想要的任何目录,.git将在其中创建:

导入 Git 存储库

您不必选择工作区本身(至少,您应该选择workspace/myproject子目录,以免使所有Eclipse 工作区成为 Git 存储库。

您可以选择工作区之外的任何其他目录:Eclipse 工作区应该只包含有关 Eclipse 项目和设置的元数据。
声明新项目时,您将能够选择项目目录,使该目录成为.classpath和的父目录.project
您的工作区将列出该新项目,即使它位于工作区之外。

于 2011-06-18T13:40:02.793 回答
3

要从 GitHub 导入项目,您应该使用 Import Git Repository as New Project 对话框(右键单击-> Import -> Git -> Git Repository as New Project)。这样,您可以选择克隆存储库的目标,包括工作区。

于 2014-01-13T16:17:00.960 回答
2

如果您想在 IDE 中编辑源代码并希望将更改反映在 Git 存储库中,请删除项目中的原始源文件并将 git 存储库中的源文件链接到项目。这样,您可以直接对 git 存储库进行更改,并在需要时提交它们。不过,在 IDE 中删除项目时,请注意不要删除文件。

于 2012-09-13T23:55:43.547 回答
1

在工作区中拥有 git 项目的步骤(使用 egit):

  1. 在 GIT 透视图中选择“克隆 Git 存储库并将其添加到此视图”
  2. 作为目标选择工作空间内的文件夹(例如“.../workspace/myproject”)
  3. 等到克隆
  4. 文件 -> 新建 -> 项目
  5. 一般 -> 项目
  6. 作为项目名称类型的工作空间中已克隆项目的文件夹的名称(例如“myproject”)
于 2014-07-01T12:14:37.460 回答
0

没有。没有办法让它工作。您不能使用 egit 将 git 项目签出到工作区中,如果您将其签出到其他地方并尝试将其复制到工作区中,您将失去与远程存储库的连接。如果您希望 VCS 可以正常工作,请使用 svn 或 mercurial。

于 2011-12-14T17:45:42.800 回答
0

在“配置本地存储位置”对话框中,选择 .../workspace/projectname。

然后在下一个对话框中,我们得到向导选择菜单。通常您应该选择“导入现有项目”。(但见下文)。

最后,还有“导入项目”对话框。由于各种无法解释的原因,有时这个对话框是空的,不会让你完成。在这种情况下,您需要取消,然后在 Eclipse 之外完全删除克隆到的工作目录,然后重新启动。

但如果那里有项目,请按完成。如果它抱怨项目已经存在,请返回向导菜单并将其更改为使用向导。选择一个 Java 向导,然后完成。通常这会起作用,但前提是您首先获得“导入项目”菜单以首先识别该项目。

可能需要多次尝试才能使其正常工作!但是一旦设置好,它就可以正常工作。

因此,总而言之:可以让 EGit 使用 git clone 的默认项目位置,但根据我的经验,它可能莫名其妙地需要多次尝试。

于 2013-04-18T16:41:03.230 回答