2013-02-03 55 views
0

首先,我們所有的項目都是.Net C#項目。GitHub倉庫和本地開發結構

我需要一些建議,以設置我的本地和存儲庫結構的最佳方式。

我們有一個主要項目作爲我們所有項目使用的核心庫。我不一定希望擁有一個具有多個項目的存儲庫,但我確實希望其他項目能夠訪問主庫的項目。爲了組織的目的,我希望每個項目都在自己的存儲庫中。

我有一個想法,我應該在我的本地系統上做到這一點,但是我想在開始設置我的項目之前獲得社區意見。

更新

所以類似於Bradley建議我用類似這樣的結構去:

All Projects Folder 
    Core Project 
    Another Project 
    Yet another Project 

使用GitHub for Windows可以使用Clone To功能將您的本地存儲庫中的主要項目夾。因此,在本例中,我將從GitHub for Windows中選擇Remote Repository,右鍵單擊要克隆的遠程存儲庫並選擇Clone To。我會選擇「所有項目文件夾」來放置我的代碼。這將爲您創建文件夾和項目結構。然後,其他項目可以通過使用該結構內的相對路徑來引用對方。我發現在Visual Studio 2012中使用Git Source Provider也可以幫助您查看項目之間的所有未決更改。

回答

1

假設您要將代碼分成多個存儲庫,將一個存儲庫作爲另一個存儲庫的依賴關係的一種方法是使用git submodules

我個人發現子模塊在日常使用中有點痛苦。

結果(例如,git checkout不會自動切換分支時更新子模塊過於頻繁,開發商已經在不經意間增加了一切,等前回滾一個子模塊被忘記git submodule update),我們更喜歡配置的「慣例「方法,並簡單地將所有必需的存儲庫複製爲彼此的同胞。在更改兩個回購協議時,您只需承諾並推送兩個回購協議,並假定其他開發人員正在跟蹤兩個回購協議中的master分支,並將同時撤消這兩個分支。

寫一個bash腳本或批處理文件很容易,它可以在新機器上設置它,或者在一臺現有機器上立即更新所有回購。

如需更詳細的示例,請參閱我的Sharing Code across Projects博客文章。

+0

我看着子模塊,但認同它們並不理想。在我看到您的帖子之前,我最終以共享代碼跨項目鏈接的方式表達了相同的想法。所以,我會給你道具。 – DDiVita

1

你可以從這個主項目中獲得create and publish a NuGet package,然後讓其他項目簡單地安裝這個NuGet。這樣其他人也可以在他們的應用程序中使用這個常見的NuGet。

+0

我喜歡這個想法,但如果我們需要在其他項目中工作時添加或更新核心,我們會失去這種能力,對嗎? – DDiVita