将GitHub项目导入Eclipse

128

我已经导入了一个GitHub项目,但是如何在我的Eclipse项目工作区设置该项目?

在检出项目之前,我需要将GitHub工作目录(c:\users)设置为我的Eclipse工作目录(c:\Projects)吗?

图片描述

编辑:

我的工作目录现在是c:\ users \ projectname \.git 然后我尝试使用eclipse的“导入”选项导入项目。当我尝试选择“使用新项目向导”选项导入时,源代码未被导入。如果我选择“导入为通用项目”选项导入,则源代码被导入,但Eclipse创建的项目不是Java项目。当选择“使用新项目向导”选项并使用向导创建新的Java项目时,代码是否应自动导入?

图片描述


7
有一个类似的问题,我不明白下面的回答如何解决。是的,Egit用户手册描述了如何克隆存储库。Egit用户手册还描述了一些步骤,这些步骤显然会导致你所描述的行为(在我的情况中,“使用新项目向导”也无法导入源代码)。我困惑的是,Egit提供的步骤会产生一个空项目,而这被称为“正常行为”。那么,从已克隆的本地存储库创建包含源代码的项目的“正常行为”在哪里?我尝试将我的空项目与存储库同步,但没有成功。 - s_t_e_v_e
2
令人沮丧的是,我发现源代码已经在文件系统中“签出”(我不知道这是否是正确的git术语),但我不记得我是如何将其放在那里的。曾经我浏览了本地存储库分支并选择了签出。(我认为没有任何事情发生,我找不到任何取消或撤消签出的选项。)无论如何,一旦源代码在那里,很容易创建一个新的Java项目并将其指向该目录。 - s_t_e_v_e
8个回答

109

正如Alain Beauvois在他的回答中所提到的,现在(2013年第四季度)更好地解释在:

从GitHub复制URL,然后在Eclipse菜单中选择

File → Import → Git → Projects from Git

http://wiki.eclipse.org/images/5/5a/Egit-0.9-import-projects-select-repository.png


如果 Git 仓库尚未克隆:

为了检出远程项目,您需要先克隆其存储库。
打开 Eclipse 导入向导 (例如 File => Import),从 Git 中选择 Git => 项目 并点击 下一步
选择“URI”并点击 下一步
现在,您需要输入存储库的位置和连接数据。输入 URI 将自动填充某些字段。完成任何其他必需字段并点击 下一步。 如果您使用 GitHub,则可以从网页复制该 URI。

选择要克隆的所有分支,然后再次点击下一步。

点击“克隆…” 按钮,打开用于克隆 Git 存储库的另一个向导。

http://eclipsesource.com/blogs/wp-content/uploads/2012/12/14-282x300.png


原始回答(2011年7月)

首先,如果你的 "Working Directory" 是 C:\Users,那很奇怪,因为这意味着你直接在 C:\Users 中克隆了 GitHub 存储库(即您在 C:\Users 中有一个.git目录)。

通常,您会在 "your choice 的任何目录\theGitHubRepoName" 中克隆 GitHub 存储库。

EGit 用户手册页面描述的那样:

无论如何 (除非您创建了一个 "bare" Repository,但这不在此处讨论), 新 Repository 本质上是本地硬盘上的文件夹,其中包含“工作目录”和元数据文件夹。
元数据文件夹是专用子文件夹,名为 ".git",通常称为 ".git-folder"。 它包含实际的存储库(即提交、引用、日志等)。

元数据文件夹对 Git 客户端完全透明,而工作目录用于将当前检出的存储库内容公开为文件供工具和编辑器使用。

通常,如果要在 Eclipse 中使用这些文件,必须以某种方式将它们导入 Eclipse 工作区。为此,最简单的方法是检入 .project 文件,从中 "导入现有项目"向导可以轻松地创建项目。因此,在大多数情况下,包含 Eclipse 项目的存储库的结构将类似于以下内容:

另请参阅 在 Github 上使用 EGit 一节。


我的工作目录现在是 c:\users\projectname\.git

您应该在 c:\users\projectname 中检出该 repo 的内容(换句话说,您应该不仅具有 .git)。

然后我尝试使用 Eclipse "Import" 选项


3
如果该项目被创建在c:\users\projectname路径下,那么你可以在该项目中声明现有的源代码目录。这是否意味着Eclipse工作区目录必须与Git工作目录相同? - blue-sky
2
@user470184:不,Eclipse工作区可以且应该独立于项目本身。 - VonC
2
好的,那么我如何将Eclipse Java项目链接到Git存储库?您能详细说明“在该项目中声明现有源目录”的含义吗? - blue-sky
2
根据https://dev59.com/uHVC5IYBdhLWcg3wjyDu#251129和https://dev59.com/MWw15IYBdhLWcg3wy-zO#6396416,想法是在与.git相同的父目录中拥有或创建.project和.classpath文件,然后编辑其属性以引用源目录。该项目的引用将存在于Eclipse工作区中。但该项目的实际工作目录将位于.git所在的位置。 - VonC
我尝试将JavaScript作为JavaScript项目导入,但源代码仍然丢失。这应该报告为错误。即使没有声明src目录,Eclipse仍应允许您浏览从存储库克隆的目录树。当您从CVS和SVN导入时,它就是这样工作的。不明白为什么这不能成为git的默认设置。 - Cheruvim
显示剩余7条评论

22

在最新的 ADT 中,您可以使用 Eclipse 导入 Github 项目:

  1. 文件 -> 导入 -> Git -> 从 Git 中导入项目 > URI

  2. 输入 Github 存储库 URL

  3. 选择分支


23
如果没有找到任何项目,那该怎么办? - Anderson
对我来说很好用,简单易记。 - Anirudh
1
它将项目导入Eclipse,但它不是Java项目,我仍在苦苦挣扎,请尽力帮忙。OP描述了我现在面临的情况。 - Fisher Coder
我总是遇到TransportError... - Asqiir

9

我遇到了同样的问题,最终找到了解决方法:

  1. 在git视图中添加或创建git仓库。
  2. 点击新建Java项目菜单,取消“使用默认位置”,选择git仓库位置,然后点击完成。

Eclipse版本:Mars.2 Release (4.5.2)


这很简单,对我来说很有效,除非我不打算为我的项目使用不同的位置。谢谢! - Akhil
你的意思是Git方面的观点吗? - Line
是的,可以使用“新建项目向导”从中导入项目。 - bomb zj

8

未解决的核心问题:

我的工作目录现在是c:\ users \ projectname.git。然后我尝试使用eclipse“导入”选项导入项目。当我尝试选择“使用新项目向导”选项导入时,源代码没有被导入,如果我选择“导入为普通项目”选项,则导入源代码,但是由Eclipse创建的项目不是Java项目。当选择“使用新项目向导”选项并使用向导创建一个新的Java项目时,代码是否应自动导入?

是的,应该。

这是一个错误。在此处报告。

以下是解决方法:

  • 导入为普通项目

  • 注意导入的数据不是有效的Eclipse项目(没有可用的构建路径)

  • 在Eclipse中打开项目文件夹中的.project xml文件。如果您看不到此文件,请参见如何使Eclipse显示.*文件?

  • 转到source标签

  • 搜索<natures></natures>并将其更改为<natures><nature>org.eclipse.jdt.core.javanature</nature></natures>,然后保存文件

    (灵感来源于此处)

  • 右键单击src文件夹,转到构建路径...,然后单击用作源文件夹

之后,您应该能够运行和调试项目,并通过包资源管理器中的右键单击使用团队操作。

如果您仍然遇到运行项目的问题(例如“找不到主类”之类的东西),请确保.project文件内部的<buildSpec>已设置(如此处所述):

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>

谢谢你的回答,但是在遇到了无数问题后,我已经放弃了egit。我只是使用git bash,它简单易用,总是有效,并且不依赖于任何特定环境。如果我早点转换就可以节省很多时间了。 - blue-sky
仅更改.project文件对我来说是不够的。我还需要右键单击项目>属性>项目面板>转换为面向方面的形式。 - xtian
你说你“只是使用git bash”是什么意思?我真的无论如何都无法以任何方式将github/bitbucket项目导入Eclipse。我将项目克隆到本地存储库中,并手动将文件粘贴到Eclipse项目中。 - user2651804
问题仍然存在,截至2016/01。我又来读自己的答案了。我真是太棒了。 - phil294

4
使用命令行是一种选择,可以省去Eclipse插件的必要性。首先,创建一个目录来保存项目。
mkdir myGitRepo
cd myGitRepo

在您刚创建的目录中克隆所需的存储库。
git clone https://github.com/JonasHelming/gitTutorial.git

然后打开Eclipse,将您创建的目录(myGitRepo)作为Eclipse工作区。不要担心项目资源管理器为空,因为Eclipse尚未识别源文件。最后,创建一个与您拉取的项目名称完全相同的新Java项目。在本例中,它是“gitTutorial”。
File -> New -> Java Project

此时,该项目的子目录应包含从Github拉取的文件。请查看我的博客中以下帖子以获取更详细的解释。

http://brianredd.com/application/pull-java-project-from-github


0

我认为在将代码导入本地Eclipse之前,您需要创建一个分支,否则会出现错误,导致无法从Github或Bitbucket导入存储库。


0

有两种方法可以完成:

1.使用克隆Git

2.您可以通过重新排列给定的文件夹来手动设置它。 创建两个单独的文件夹“src”和“res”,并放置库提供的适当类和xml文件。然后从eclipse导入项目并将其设置为库,就这样。


-1

当本地 git 项目在 Eclipse 中被克隆后,可以在 git 视图中查看,但无法在 包资源管理器(工作区)中查看时,可以尝试以下步骤:

  • git 视图中选择该仓库
  • 右键单击,选择 导入项目

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