我只是從svn轉移到git,並且渴望打下一些好的基礎。我應該將Git存儲庫存儲在Home還是Eclipse Workspace中?
默認情況下,Eclipse希望將我的本地克隆存儲庫存儲在〜/ git中。我更願意將任務的所有數據保存在同一個工作區中 - 所以我傾向於將其保存在我的工作區中。
我應該考慮哪些重要的優點/缺點?
我不打算做很多分支 - 我真的要走dvcs路線,主要是爲了克服一些不可靠的互聯網通信問題。
我只是從svn轉移到git,並且渴望打下一些好的基礎。我應該將Git存儲庫存儲在Home還是Eclipse Workspace中?
默認情況下,Eclipse希望將我的本地克隆存儲庫存儲在〜/ git中。我更願意將任務的所有數據保存在同一個工作區中 - 所以我傾向於將其保存在我的工作區中。
我應該考慮哪些重要的優點/缺點?
我不打算做很多分支 - 我真的要走dvcs路線,主要是爲了克服一些不可靠的互聯網通信問題。
我在Eclipse中切換到Git,並閱讀有關此問題。看來,current wisdom(雖然不是每個人都同意)是:
習慣了沒有工作空間目錄下的項目。
每個相關的eclipse項目組都有一個git倉庫(當然也許還有更多的文件)。 「相關項目」的概念取決於您的便利[*]
對於每個存儲庫,每個Java項目都有一個第一級目錄。這意味着你將有一個.git/
目錄,並且在同一級別上有項目目錄。
例子:假設, 「GIT之前」,你有一個Eclipse工作區中有幾個項目:
/wk/workspace/.metadata/
/wk/workspace/projXXX/
/wk/workspace/projXXXtest/ (related with the previous)
/wk/workspace/projYYY1/ |
/wk/workspace/projYYY2/ > three related projects
/wk/workspace/projYYY3/ |
/wk/workspace/projZ/ (a project you are not going to version in git)
然後您將創建兩個空目錄,每一個倉庫,說:
~/repositories/XXX/
~/repositories/YYY/
,之後,隨着新GIT佈局,你必須:
/wk/workspace/.metadata/
/wk/workspace/projZ/
~/repositories/XXX/.git/ (XXX related repository - non-bare)
~/repositories/XXX/projXXX/
~/repositories/XXX/projXXXtest/
~/repositories/YYY/.git/ (YYY related repository - non-bare)
~/repositories/YYY/projYYY1/
~/repositories/YYY/projYYY2/
~/repositories/YYY/projYYY3/
的Eclipse(例如:It)做這一切都爲你當你點擊Team->分享在現有的項目,並指定(在本例中)~/repositories/XXX/.git/
作爲倉庫,(~/repositories/XXX/
爲「工作目錄」,離開「路徑在存儲庫中「空白)。
[*]請記住,這裏的每一組項目都是從Git的角度來看,只是存儲庫中的一組目錄。一些相關的含義:在上面的例子中,你永遠不會在Eclipse工作區中同時存在兩個不同的分支/版本的項目projYYY1
-projYYY2
;比如說,當你爲一個項目提交做標記時,你實際上是在標記完整的倉庫(項目組)。
的.git
應該是在您的工作樹(即表示您正在使用的當前分支現任掌門文件)
請記住,使用Git,分支機構不在目錄(而不是SVN) ,所以你的工作樹將直接代表分支內容,而不是幾個目錄(針對你的各個分支),然後是每個分支的內容。
我通常喜歡將我的項目源與Eclipse工作區分開,但這是一個偏好問題。
我認爲,在工作區外存儲git版本樹是個好主意。這樣就可以將項目從不同的存儲庫中分離出來,但仍然可以在同一個工作區中處理它們。另外,如果將代碼放在工作空間之外,則可以在工作空間之外(在工作副本中)以層次方式組織您的項目,但仍然可以在Eclipse中看到平面表示。
是的,這看起來非常合理,因爲Eclipse對其工程空間文件夾之外的項目感到滿意。因此,您可以將相關項目集中在一個文件夾下,如leonbloy的答案中所建議的那樣,只有該文件夾將位於工作空間層次結構的* outside之外,並且git repos將關閉每個此類文件夾。雖然對於git和EGit都是新手,但我不確定EGit能夠處理工作空間之外的源代碼 - 也許您的方法需要使用常規命令行git或基於那,而不是EGit? – Carl
我想一個替代方案可能是隻允許「相關」項目共享一個工作區,然後將您的git倉庫放到頂層工作區文件夾中。但是這可能是不方便的,因爲人們可能希望在同一個工作區中有類似的項目,以便輕鬆*參考*,即使它們不是在單個版本控制庫下一起演變。所以你的建議似乎是最普遍的服務。 – Carl
其實,我發現文檔說你可以在這裏使用EGit: http://wiki.eclipse.org/EGit/User_Guide#Creating_a_Git_Repository_for_multiple_Projects – Carl
其中是〜目錄? – rasen58
〜目錄是在基於Unix的操作系統中用於主目錄的快捷方式(請參閱http://en.wikipedia.org/wiki/Home_directory) – ianmayo