Eclipse + EGit: 将项目克隆到工作空间中

64

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

我在Github上有一个现有的git仓库,想要将它克隆到我的工作区。 我的目标是直接在我的工作区文件夹中存储本地仓库,但是我在使用EGit时无法实现。

当我想要使用EGit克隆github仓库时,我必须选择一个目录作为目的地。 建议的目录在我的主目录中(而不是在我的工作区)。 当我选择这个目录时,我可以在Eclipse中看到项目,但它并没有存储在我的工作区文件夹中。 而是存储在我的主目录中。

当我选择直接在我的工作区内选择一个目录时,在后来导入项目时,它会提示我已经有一个同名的目录了。

我不知道该怎么解决。 我认为这应该是一个常见的情况。 在过去,我使用hgEclipse(Mercurial),它正是我所期望的那种方式运作,所以我对EGit的工作原理感到困惑。 也许我误解了什么。

可能需要知道的重要信息是:在github仓库中没有来自eclipse的.project或.settings文件。 我在我的.gitignore中将它们忽略了,所以在导入对话框中,我必须选择“作为常规项目导入”,而不是“导入现有项目”。 但我认为这不应该有影响?

我希望有人能帮助我或解释一下为什么EGit插件默认不直接将仓库克隆到工作区中。

我的Eclipse版本是3.6,我已经通过marketplace安装了EGit。

6个回答

17

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

Import Git Repository

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

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


7
为什么 Eclipse 工作空间只应包含元数据?当我把项目放在工作空间里时,很容易备份,并且我始终知道我的文件在哪里。 - Manuel Mauky
2
@lastard:我会将源代码与任何IDE分开,这样,我可以更改IDE或更改IDE中的工作区而无需担心文件迁移。话虽如此,如果您在工作区内选择子目录,则应在其中创建一个.git,并在其中检出git存储库。换句话说,如果您想要在工作区内放置项目,那是可能的。 - VonC
感谢您的回答。独立于IDE是我不将Eclipse特定的.project文件提交到github的原因,但在我的本地计算机上,我喜欢将所有项目放在我的工作区中。 - Manuel Mauky
@lestard:我仍然会提交.project.classpath ;) 请参见https://dev59.com/-lbTa4cB1Zd3GeqP-F4z#5718566和https://dev59.com/k3E85IYBdhLWcg3wXCIv#2819639。 - VonC

3
从GitHub导入项目,您应该使用“导入Git存储库作为新项目”对话框(右键单击->导入->Git->Git存储库作为新项目)。这样,您可以选择克隆存储库的目标位置,包括工作区。

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

1

在工作空间中使用git项目的步骤(使用egit):

  1. 在GIT视图中选择“克隆Git存储库并将其添加到此视图”
  2. 选择工作区内的文件夹作为目标(例如“... / workspace / myproject”)
  3. 等待克隆完成
  4. 文件 -> 新建 -> 项目
  5. 通用 -> 项目
  6. 将项目名称设置为在工作区中已克隆项目所在文件夹的名称(例如“myproject”)

0

不行,没有办法让这个工作。你不能使用egit将git项目检出到工作空间中,如果你将其检出到其他地方并尝试将其复制到工作空间中,你将失去与远程仓库的连接。如果你想要一个有效的版本控制系统,请使用svn或mercurial。


这完全不是真的,即使是真的,也只是Eclipse的git支持存在问题,而不是git本身的问题。所以我不确定你为什么要推广其他版本控制系统。 - Brad Mace
那个评论是在2011年写的。现在已经是2019年了。 - jcfolsom

0
在“配置本地存储位置”对话框中, 选择.../workspace/projectname。
然后在接下来的对话框中, 我们会得到向导选择菜单。通常情况下,您应该选择“导入现有项目”。 (但请参见下文)。
最后,是“导入项目”对话框。 由于各种原因,有时此对话框为空,无法完成操作。 在这种情况下,您需要取消操作,然后在 Eclipse 之外完全删除克隆目录,然后重新开始。
但如果已经存在该项目,请按完成。 如果出现“项目已经存在”的错误,请返回向导菜单并更改使用向导的设置。选择 Java 向导,然后按完成。通常情况下,这将有效,但前提是您首先要让“导入项目”菜单能够识别该项目。
可能需要多次尝试才能使其正常工作!但一旦设置好了,它就可以正常工作。
因此,总结:理论上可以让 EGit 使用默认项目位置进行 git 克隆,但根据我的经验,可能需要多次尝试才能成功。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接