2011-03-01 50 views
9

我一直在使用Git的分支策略的通用代碼的Git分支stategy這裏列出http://nvie.com/posts/a-successful-git-branching-model/的特性分支和

到目前爲止,其一直對我很好。

我經常發現我自問的問題是在功能分支上工作時,我最終需要實現與整個項目相關的代碼。處理這些情況的最佳方法是什麼?

a)簽出主要開發分支,提交更改並將開發的功能分支重新綁定。

b)在功能分支上進行更改,然後合併到開發中,以便其他功能分支可以訪問該代碼。

c)爲通用代碼創建一個新分支,並將其合併到Develop中以及需要使用它的任何功能分支中。

這是另一個問題。你多久將一次功能分支合併回主開發分支?你是否等到功能全部完成,然後合併並刪除它?或者,在任何時候穩定的時候,你是否會重新開發幾次?

回答

4

我喜歡選項/,但實際情況是,當你提交後做的提交,你只知道有些人實際上是在這個過程中共同代碼要晚得多。

當在feature分支出現這種情況(通常還沒有被推動而隨着共享),我更喜歡做一個interactive rebase,重新排序的通用代碼的提交,然後再合併master跳轉到feature爲這n個第一次提交(快進合併)分支。
從那裏,我可以重新登錄master任何其他必須受益於這些新的共同功能的分支。

如果該功能分支的狀態必須對其他分支可見(因爲要在推送master的同時將feature分支保留爲您的回購專用分支),則合併回功能分支纔有意義。
如果開發的其餘部分:

  • 可以在不需要的東西是在feature分支
  • ,而無需修改一些常見的文件集(這將意味着更難合併可以進行任何部分進行的時間越長您在masterfeature分支之間等待)

,那麼我寧願稍後合併feature分支。