2015-06-03 80 views
1

工作據我瞭解GIT UML的工作流以下列方式描述:http://nvie.com/posts/a-successful-git-branching-model/與舊版本的Git的工作流程

我已經與老枝在這個工作流程bugfixing的問題。

鑑於我們有大量的舊版本分支合併到主分支中。我們的最後一個版本是release 2.6。我們需要修復一些舊版本分支中發現的錯誤,比如1.5。我們從主分支狀態創建一個與1.5版相關的分支,對其進行修復,部署並確定。但是現在一個問題仍然存在:我們如何能夠對所有較新的版本進行存儲和傳播?

我們不能將此修復程序合併到master中。例如,因爲我們正在修復的課程可能會在版本2.3中刪除。它可能不在主分支的頭部。

不確定我們可以將它合併到master的歷史中。我無法想象它應該如何改變所有提交。

因此看起來像修補程序後所有下一個提交的主分支已過期,無法使用。如果我們在1.9版本中有一些錯誤,那麼我們唯一的選擇就是從1.9提交一個分支到master,然後用1.5修補程序合併它,然後繼續。

我的理解是否正確?

回答

1

上述工作流程不包括您提到的情況。 如果舊類在新版本中不存在,這意味着該錯誤甚至可能不存在,所以錯誤修復不應該傳播到新版本。您也不需要將其合併到主歷史記錄中,因爲主代表當前產品狀態(掌握在客戶手中),這在發行版中是領先的。請記住,更改任何舊節點的歷史記錄都會更改下一個節點的所有歷史鏈。

爲了解決這個問題,最好創建一個新分支,例如名爲「Support-1.5」的分支,其中包含與該產品的特定舊版本的支持相關的更新,將相關的錯誤修正合併到該分支中,以及只要該產品的舊版本受支持,此支持分支就會一直存在。

希望這會有所幫助。

+0

謝謝,unixer!但是談到你的解決方案 - 那麼爲什麼要在主分支中保持產品狀態,如果最初的修補程序使它過期?那麼,最好的辦法是保持所有發佈分支獨立,並且不要將它們合併到一個分支中。 – MiamiBeach

+0

您可以選擇以更高效的方式工作,並擁有更好的版本控制。 git非常靈活。 – najjarammar