我們已經接近分支模型,我們有一個代表生產代碼的master
分支和代表未來版本的release-x.x
分支。Git分支模型:幾個問題
然而,也有少數情況下,我們不知道如何有效地解決:
直播bug修復是不相關的當前版本
新
feature
是支鏈的release-2.0
的並完成模塊A的重寫。新的
feature
已完成併合並在release-2.0
。當前活動模塊A中的錯誤在
master
上找到並修復。
在這一點上,我們推測有2種可能:
我們變基上
master
release-2.0
帶來錯誤修復和解決衝突(丟棄錯誤修復代碼也就是現在無關)。最終,我們在master
版本準備好後合併release-2.0
。我們摘櫻桃只有bug修正是相關的釋放到
release-2.0
,當釋放準備就緒,我們覆蓋了整個master
歷史與release-2.0
歷史。
解決方案#1迫使我們解決合併與我們知道是不是需要提交衝突,但解決方案#2迫使我們擦拭全master
分支,由release-2.0
分支的歷史上每一個版本替換它。這引入了一些丟失錯誤修復的機會,我們忘記了在release-2.0
上的選擇,並且還可以打破在發佈之前支持master
的錯誤修復。
一個功能不使其進入發行畢竟
- 我們創建了一個新的
feature
,重訂上release-2.0
,並與--no-ff
合併爲release-2.0
。 - 發現了一些錯誤,所以我們在
feature
上修復它們並重新執行上述合併過程。 - 客戶再次審查該功能,決定他們想要改變很多事情 - 沒有這些功能,該功能沒有價值,但我們無法對
release-2.0
進行這些更改,並且必須等到release-3.0
。
什麼是處理這種情況的正確方法?我們是否應該恢復與在release-2.0
中完成的功能相關的所有提交,並顯示一條消息,如「恢復功能X - 推回到3.0」,然後再合併feature
到release-3.0
?
好像這裏有多個問題,這兩者都是主要處理意見。是否有可能縮小問題的焦點並將其作爲一個技術問題重新說明? – larsks
@plalx你有答案解決你的問題嗎?如果是,您可以將其標記爲答案。這將有利於其他有類似問題的人。 –