2016-12-15 43 views
1

我見過類似的問題,但有些是非常古老的,有些不是我正在尋找或沒有答案。工作區和回購路徑安排日食和混帳

我在Eclipse下的項目是/workspace/project1/workspace/project2。他們是Gradle項目並相互依賴。我也有/workspace/project3這是一個Gradle項目,但獨立。

我需要將它們「上傳」到Bitbucket上的git倉庫。我安裝了EGit來幫助我解決這個問題。它詢問我本地回購所在的位置,我不知道該說些什麼。我應該爲每個工作區或每個從屬項目組創建一個回購或什麼?

例如,當我右鍵單擊一個項目,然後按Team > Share > Git我到這個對話框,我不知道我應該填寫什麼。

enter image description here

回答

1

每個(non-bare)git倉庫都有一個工作目錄,其中存儲了當前簽出的提交的文件(稱爲HEAD)。

默認情況下,工作目錄是git元數據目錄(名爲.git)的父目錄,但可以通過​​分離。例如:git config core.worktree /path/to/workdir

例如:It不能與具有分離的工作目錄庫處理如下回答:EGit working directory not under the local repository

但不管這種限制,你不能分割多個工作區中一個Git倉庫的工作目錄。

因此,應該將項目移至工作目錄類似於這樣的結構:

~/git/my-repo/.git 
~/git/my-repo/project1 
~/git/my-repo/project2 
~/git/my-repo/project3 

如果project3是相互獨立的,它可以保持它在哪裏或位於其他地方完全。

當計劃將相互關聯的項目分散在幾個git存儲庫時,需要小心謹慎。這使得git存儲庫也能有效地相互依賴,但是沒有git擁有依賴管理工具。

要使EGit移動項目,您需要在輸入字段內的路徑中輸入project1

常用的構建文件(如主pom.xml或相應的Gradle文件)將位於工作目錄的根目錄中。這也簡化了Travis,Codeship和朋友等流行構建服務的配置。

+0

爲什麼我需要一個my-repo級別? 'git'裏面有同樣的東西嗎? – Mark

+0

'my-repo'是保存您的存儲庫的目錄,應相應地命名。您可以省略'git'目錄,儘管通常情況下,您將擁有多個存儲庫,並且大多數人將所有存儲庫分組到一個公共父目錄中。但這純粹是一個組織方面。 –

+0

所以在這裏你假設項目1到3都在同一個回購,即使3是獨立的,1和2是依賴的? – Mark

1

幾件事要明白/記住:

  • Eclipse工作空間是項目的邏輯容器,不一定是一個物理容器。工作區所在的文件夾也可以是項目的物理容器,這意味着項目的文件可以位於工作區文件夾下的文件夾中(如果您在Eclipse中創建新項目,這是默認位置)。但這不是要求;包含在工作區內的項目可以將其內容(其文件)放置在文件系統的任何位置。
  • 在大多數開發設置中,本地git回購站位於用戶主目錄中的「標準」位置,即%USER_HOME%/git/name-of-repo。同樣,這不是一個硬性要求,用戶可以選擇在他們選擇的任何位置克隆或創建回購站。

因此,Eclipse eGit向您展示了這2軸的靈活性。它是問你想在哪裏創建你的本地git倉庫,這通常與你的工作空間文件夾不同。使用創建...按鈕來創建它。我認爲在這一點上它會自動填充庫中的路徑字段。如果沒有,你能說出你想要的任何路徑(通常它同樣作爲項目名稱,雖然不一定)

在這一切結束時,你就會有你的工作空間(邏輯容器)以及一個當地的git倉庫,它將成爲項目內容的物理位置。

+0

所以在這個操作之後,這些項目將*從工作區目錄移動到git倉庫目錄(不會被複制)。只是想確保我避免了我有兩份我的代碼的情況,就像我在其他問題中看到的一樣。 – Mark

+0

老實說,我不確定它是否會移動文件。我只想嘗試一下,然後檢查兩個位置以查看情況。 –

+0

如果您有興趣:它確實將項目移出我的工作區並進入了git倉庫。謝謝您的幫助。 – Mark