2010-06-15 104 views
3

我想將我的項目從本地svn倉庫移至GitHub。多位開發人員正在爲這個項目工作。 我在想,每個開發人員都應該有他們自己的分支,他們將在其中進行更改。當經理審查他們的工作時,他會將其合併到主分支中。 由於GitHub的私人存儲庫數量有限,我不希望每個開發人員都有獨立的存儲庫。GIT倉庫中每個開發人員的分支

這是個好主意嗎?什麼是其他的選擇?

回答

4

斯科特·查孔做了與臨Git的書偉大的工作。第5章討論分佈式工作流程,我認爲Integration-Manager工作流程符合您所描述的內容。

Git Pro

還記得,不像SVN,每一個開發商都會有自己的,不只是一個工作拷貝,他們開發的機器上檢查。以同樣的方式,您可以將裸倉庫克隆到內部網絡上的共享服務器上,讓開發人員承諾回購該倉庫,然後讓維護人員從內部倉庫獲取內容,集成更改,然後推送至github。

在該工作流程中,您可以在自己的計算機上管理裸回購,並通過普通Unix用戶帳戶控制權限。您不受可以像Github一樣推向您的內部回購的開發人員的限制。

2

你不會需要設置不同的分支爲每個開發人員(儘管你可以)在一個項目中,我們建立這樣的架構:

master 
pre-prod 
qa 
devel

開發商都簽了devel的分支,對推QA團隊每晚都會把開發分支拿到QA中,然後回顧一下在開發硬件平臺上做了什麼和測試,然後在QA達到了幾個星期的價值或達到一個里程碑之後從QA中提取了預產品,然後,在生產硬件上進行了「內部測試」的測試,一旦清除,它就會被推送給主人。

如果您有多個開發人員,您可能只想花時間設置gitolite(或Gitosis)和遠程Git回購。讓每個開發人員擁有自己的Repo,然後將您的repo作爲「主要」,或者從每個開發人員回購中獲得主要回購,這是理想的,並且可以與許多合作伙伴一起在大型項目中發揮作用。

但是,Github中的每個開發者分支的佈局也可以很好地工作,具體取決於您有多少開發人員以及代碼庫的規模有多大(僅僅是因爲在〜400MB或歷史悠久之後的性能繁瑣(大量的增量))

+0

哦,我喜歡你所說的,這就像真正的公司一樣。當項目規模大時,設計它就容易多了,但我們也應該在小項目的情況下做到這一點(可能是預先準備好的) – pastjean 2010-06-15 23:06:28

+0

這種佈局最適合那些習慣於VCS和SVN的團隊的公司和開發人員 - 這個想法是即使Git是分散的,你仍然可以設置一個集中的存儲庫來跟蹤和維護代碼。預產品就像一個更高層次的質量保證,但它非常多餘。 – 2010-06-15 23:15:38

1

當他們在他們的PC上克隆存儲庫時,它被稱爲分叉,我建議他們製作git「format-patch」並將其發送給管理器,然後通過應用程序審查修補程序它並承諾到中央儲存庫。

這是被稱爲「分散與人類看門人」的工作流程: http://doc.bazaar.canonical.com/bzr.2.1/en/user-guide/bazaar_workflows.html (這個例子是集市,但它適用於GIT非常好)

你的思考方式也不錯與具有分支大家。與Gatekeeper分散化類似於Linux內核使用的內容

+0

在Linux工作流程中,Linus從提取+合併中實際抽取10個人,其餘的都是補丁提交給維護者或提交給他們的請求。從管理角度修補+合併修補程序是很乏味的,儘管在Git中執行起來很容易,尤其是當它是一個開發團隊而不是像開源項目時那樣麻煩 – 2010-06-15 23:14:22

1

在Git中,每個開發人員都將擁有自己的存儲庫和默認分支,他們將在其中提交更改。

請參考 - http://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html

+0

讓我補充一點,每個開發人員都可以擁有自己的* remote *存儲庫,當您審覈更改時,您可以將它們合併到主庫中。它與OP的分支類似,只是到了下一個層次:) – RyanWilcox 2010-06-16 03:26:41

相關問題