在与SVN共度十年之后,我终于接受了Git的抨击。我在服务器上设置了Git,Gitolite和GitLab,并成功地将代码添加到我的本地存储库,已提交,克隆的存储库并将代码推送回存储库。到现在为止还挺好。现在进入EGit ......
我使用Git Repository Exploring视图克隆了一个存储库,使用以下路径语法:
ssh://dexter:vaultanalyser.git
(在GitLab中,存储库被称为项目,所以我假设我应该在每个Eclipse项目中拥有一个存储库?而不是包含多个项目的SVN样式的单父存储库? )
将存储库导入:
/Users/mattpainter/git/vaultanalyser
我希望这一步能够通过所有源为我自动创建一个Eclipse项目,但事实并非如此。我试着捏造目标目录,所以它在我的工作区中,但这也不起作用。
如何在Eclipse中获取克隆源? This site意味着如果你创建一个与存储库同名的项目,那一切都神奇地起作用,但事实并非如此(是的,我知道这篇文章是关于Github,而不是GitLab,但我认为两个人足够接近手头的任务。)
然后我尝试在Eclipse中创建项目并共享它 - 但随后整个项目显示为存储库中的子文件夹。如果存储库确实类似于项目,那么这不是我想要的。
我查看了其他看起来相关的StackOverflow主题,但我担心我仍然缺少一个关于如何工作的关键理解,到目前为止看起来都非常复杂。
帮助?
答案 0 :(得分:3)
在GitLab中,存储库被称为项目,所以我假设每个Eclipse项目应该有一个存储库?
是的,但是GitLab"项目"不一定是Eclipse之一 它不必遵循SVN结构,如" Eclipse reference directory outside eclipse project directory but within repository"中所示。
您需要做的就是创建一个Eclipse项目,在默认路径(Eclipse工作区)中指定不的源目录,但是在克隆您的repo的任何地方(如&#34中所述) ; Getting started with Eclipse + EGit - confused&#34)
。
这样,您刚刚声明(并在Eclipse工作区中引用)的eclipse项目的文件(.project
和.classpath
)位于Git repo的根目录。
然后Egit可以很好地管理该项目
或者您可以使用Egit直接导入它:" Eclipse + EGit: clone project into workspace"。
正如OP nullpainter报告如下:
原始问题因服务器上
.git/objects
文件夹中的无效权限而更加复杂 在文件夹上运行chmod git:git -R *
解决了问题
他详细介绍了下面的正确设置。
答案 1 :(得分:3)
为了扩展@VonC的答案,让EGit和Eclipse发挥得很好的步骤是:
从EGit中选择“克隆Git存储库”,接受所有默认值。这将在git
父文件夹中创建一个文件夹,位于工作区之外的某个位置。
创建一个新的Eclipse项目。我正在使用Java,但我认为其他语言也有类似的步骤。在第一个对话框中,取消选中“使用默认位置”,然后选择在步骤1中创建的存储库文件夹。接受所有默认值。
从新项目中选择Team > Share Project...
。选择Git,勾选“在项目的父文件夹中使用或创建存储库”。
现在,您可以从Eclipse中将代码和Eclipse点文件推送到git存储库。
(我的原始问题因服务器上.git/objects
文件夹中的无效权限而加剧 - 在文件夹上运行chmod git:git -R *
解决了问题)
答案 2 :(得分:0)
我用命令行检查它 - 然后在那之上构建我的项目。实际上,我最终使用命令行git进行大多数操作。 EGit对于查看差异很有用,但我发现命令行有更多的功能和控制。 Git主要是为开发者提供大量的权力和控制权。