2011-06-20 150 views
0

我們正在考慮兩種方式在一個新的項目使用Git工作:GIT補丁 - 或 - 推?

  1. 開發者發送補丁來維護(這可能最終會被開發商之一),他的蘋果那些,測試和集成

  2. 開發人員將其提交到公共「開發人員」分支(項目的每個子模塊的分支),維護人員獲取有關推送的郵件通知,並可以查看\ test \ integrate。

最終結果是相同的 - 一個基於最新的分支,包含開發人員提交。

所以 - 我的問題是,哪個更好?我應該在一個非開源項目開發者的小組中使用嗎? (聽起來不可思議,我發送補丁郵件給傢伙坐在我旁邊)

回答

6

爲什麼不提交pull請求並處理它們呢?這就是他們對Linux內核所做的。

公共共享開發者分支的主要問題是獲取你不想分支的東西。你不想重新發布已發佈的共享分支,並且所有的時間都是醜陋的。正常補丁的主要問題是SHA在同一個補丁的發送者和接收者之間不匹配(出於很好的理由)。如果我正在開發補丁郵件系統,我會考慮使用git-bundles來獲取這些SHA。請注意,這是一個複雜的拉動方式。

另一種選擇是使用gitolite(強制誰在共享分支上執行並且不允許提交)並讓開發人員在「功能」分支上工作(請參閱http://nvie.com/posts/a-successful-git-branching-model/和關聯的gitflow命令),並僅讓可信的dev執行從功能分支到dev/master分支的合併。

您還可以查看gerrit和其他git代碼審查工作流程。

0

正確的方法是分叉。這意味着開發人員克隆存儲庫,完成他們的工作,完成後他們會聯繫項目維護人員,以便他可以從外部回購中取消新分支。

Github已經在它的UI中支持它。

+3

所有'git clone'操作都是分叉的。 github的優勢在於它有助於「拉動請求」基礎設施自動化。 –