簡體   English   中英

Git - 上游+功能分支+發布分支

[英]Git - upstream + feature branches + release branches

我正在使用rebasing主題分支工作流程http://www.golden-gryphon.com/software/misc/packaging.html

但是因為本地測試人員和管理員不喜歡一次性發布分支,所以我需要轉移到具有穩定分支的工作流。

唯一可接受的是合並工作流程。 現在的問題是我不知道如何使用此工作流中的相關功能分支。 在變基礎時,這很簡單,每個補丁我只是重新設置依賴於這個分支的所有功能分支,一切都恢復正常。 通過合並工作流程,我無法修改我的功能分支,但合並似乎有點瘋狂。

有更好的方法嗎?

有幾個長期功能,模型可能如下所示:

     o-----o  bugfix
    /       \
o--o--o------o------o  develop branch
       \      \      \
        o-o----o---o--o  long-term feature 1
           \    \   \  \
            o--o-o-o-o--o--o feature 2

基本上,您有一個開發分支,並將錯誤修正合並到您的開發分支。 長期功能分支是開發分支的基礎,您可以通過合並該開發分支的新更改來更新它。

同樣,您有一個基於功能1的reature 2的功能分支,您可以通過合並新功能新功能1分支來更新它。

完成功能1后,將其合並回來進行開發,並從develop分支更新功能2:

     o-----o  bugfix
    /       \
o--o--o------o------o---o---o  develop branch w/ feature 1
       \      \      \ /     \
        o-o----o---o--o       \
           \    \   \  \       \
            o--o-o-o-o--o--o--o-o feature 2

合並和rebase工作流之間的主要區別在於,合並在rebase工作流中是不可見的,但它們仍然會發生(您可以在rebase之后的reflog中看到它們)。 然后使用rebase甚至更多,因為對於要重新分支的分支的每個新變更集都執行它自己的合並,而在簡單合並工作流中,僅完成兩個分支頭之間的一個合並。

典型的合並工作流程如下所示:

             o-o-o--------------o         Release1+bugfixes
            /     \              \
o-----o----o--o-o--o---o----o-o-o-o-o--o  develop
       \     /               \     /
        o-o-o Feature 1       o---o Feature 2

短期功能是在開發中發展起來的,長期功能得到了自己的分支。 功能分支合並回到開發中。 對於每個版本,都會從develop創建一個分支,並在發布錯誤的發布分支上創建錯誤修正。 當一個錯誤修復完成后,它將合並回到develop。

可以在http://nvie.com/posts/a-successful-git-branching-model/找到更好的解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM