2012-04-22 103 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

相關問題