[英]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.