2012-04-22 102 views
3

在与SVN共事了十年之后,我终于开始尝试使用Git。我在服务器上设置了Git,Gitolite和GitLab,并已成功将代码添加到本地存储库,提交,克隆存储库并将代码推回到存储库。到现在为止还挺好。现在进入例如:It ...如何使用EGit创建Eclipse项目

我已经克隆使用Git仓库探索视图使用该路径的语法如下库:

ssh://dexter:vaultanalyser.git 

(在GitLab,仓库被称为项目,所以我假设,我应该有每个Eclipse项目一个资料库,而不是包含多个项目SVN风格的单亲库)

这将导入库为:??

/Users/mattpainter/git/vaultanalyser 

我在期待这一步为我自动创建一个Eclipse项目所有源,但事实并非如此。我试图欺骗目标目录,所以它在我的工作区,但这也不起作用。

如何在Eclipse中获得克隆的源代码? This site意味着如果你创建一个与存储库同名的项目,这一切都会神奇地起作用,但事实并非如此(是的,我知道这篇文章是关于Github的,而不是GitLab的,但我认为这两者足够接近为了手头的任务)。

我已经尝试在Eclipse中创建一个项目并共享它 - 但是随后整个项目将作为存储库中的一个子文件夹出现。如果知识库确实与项目类似,这实际上并不是我想要的。

我已经看过其他看起来相关的StackOverflow主题,但我担心我仍然错过了一个关键的理解,这应该如何工作,这一切都看起来非常复杂到目前为止。

帮助?

回答

3

In GitLab, repositories are referred to as projects, so I assume that I am supposed to have one repository per Eclipse project?

是的,但一个GitLab“项目”不一定是Eclipse。
它不必遵循SVN结构,如“Eclipse reference directory outside eclipse project directory but within repository”所示。

所有你需要做的就是创建一个Eclipse项目,指定源目录是在默认路径(Eclipse工作空间)不,但无论你克隆你的回购(如“Getting started with Eclipse + EGit - confused”中所述)。
这样,您刚刚声明(并在Eclipse工作区中引用)的eclipse项目的文件(.project.classpath)位于Git仓库的根目录中。
然后Egit可以很好地管理该项目。
或者您可以直接用Egit导入:“Eclipse + EGit: clone project into workspace”。


如下的OP nullpainter报告:

The original issue was compounded by invalid permissions in the .git/objects folder on the server.
Running a chmod git:git -R * on the folder solved the issue

他详细介绍右下方设置。

+0

感谢;那工作的一种享受。让我感到沮丧的是,如果你选择共享项目,目标位置是/ Users/mattpainter/git//,这不是我想要的。使用链接的源代码时,它仍然会显示此内容,但是在提交时显示/src/和src/。很混乱...! – nullPainter 2012-04-22 02:28:27

+0

实际上,这个问题可能是因为我刚刚创建了一个指向repo的链接'src'文件夹 - 我的Eclipse版本(Juno)似乎没有'从现有源创建项目',它的功能如同描述。 我目前在我的Eclipse工作区中有'.project'和'.classpath',我认为这是可行的。 – nullPainter 2012-04-22 02:49:47

+0

对。 “从现有源创建项目”已合并到标准的“新Java项目”对话框中。当执行此操作时,以及'在项目的父文件夹中使用或创建存储库'以避免出现有关'.project'文件冲突的错误时,我会收到以下错误: '推送期间发生内部异常:dexter:vaultanalyser。 git:Missing tree 32f2fe4f5ee5a4e2e7265ac5068a2b17a30b32e4' – nullPainter 2012-04-22 03:04:22

0

我用命令行检查出来 - 然后在上面建立我的项目。事实上,我最终使用命令行git进行大部分操作。 EGit对于查看差异很有用,但我发现命令行有更多的权力和控制权。 Git主要是为开发者提供大量的权力和控制权。

3

要@ VonC的回答扩大,步骤获得例如:It和Eclipse打好听点是:

  1. 选择“克隆一个Git仓库”从例如:It,接受所有默认值。这将在父级文件夹git中创建一个文件夹,位于工作区外。

  2. 创建一个新的Eclipse项目。我使用Java,但我认为其他语言也有类似的步骤。在第一个对话框中,取消选中“使用默认位置”,然后选择步骤1中创建的存储库文件夹。接受所有默认设置。

  3. 从您的新项目中选择Team > Share Project...。选择Git,并勾选'在项目的父文件夹中使用或创建存储库'。

现在,您可以将您的代码和Eclipse点文件从Eclipse中推送到您的git存储库。

(我原来的问题是由无效的权限在服务器上的文件夹.git/objects复合 - 运行在那个文件夹chmod git:git -R *解决问题)

+0

感谢您的反馈(+1)。我已将它列入我的答案中,以获得更多的知名度 – VonC 2012-04-22 09:05:22

相关问题