下面是我們的方案:Git合併分支恢復工作流程
開發人員將Master分叉到新分支並開發一些代碼。大師進步。當它通過QA並被合併到Master中時,將執行完整的迴歸測試。有時候,一個分支(幾個被合併/測試的版本)未能迴歸。所以我們想要恢復合併並繼續發佈其餘的代碼。通常情況下,只需要在原始開發中調整一些東西,再次進行QA,然後重新融入主人,但是因爲主人最初恢復了原來的變化,所以大部分分支變化都被消除了。如何在修改完成後將此dev分支重新合併到master中而不會丟失由於還原而導致的更改?
下面是我們的方案:Git合併分支恢復工作流程
開發人員將Master分叉到新分支並開發一些代碼。大師進步。當它通過QA並被合併到Master中時,將執行完整的迴歸測試。有時候,一個分支(幾個被合併/測試的版本)未能迴歸。所以我們想要恢復合併並繼續發佈其餘的代碼。通常情況下,只需要在原始開發中調整一些東西,再次進行QA,然後重新融入主人,但是因爲主人最初恢復了原來的變化,所以大部分分支變化都被消除了。如何在修改完成後將此dev分支重新合併到master中而不會丟失由於還原而導致的更改?
git不會合並之前已經合併的任何提交。由於提交仍然在master的歷史中(但被後來的提交恢復),git不會再應用它們。該解決方案可以是:
git revert
提交該恢復的變化。或(更好的解決方案):
在它面對這聽起來像您使用的是您的工作流程恢復不正確。
爲了避免這種情況,如果主人超越了分支,你應該將主人合併到分支中而不是其他方式。
所以:
這個工作流程避免了任何需要在任何時候恢復的推廣工作流的一部分(開發人員可能仍然需要時間來恢復時間在他們的開發分支)。
您應該永遠不需要將主合併從一個分支恢復到分支,因爲對於已經接受到主分支的更改,它們必須在首先到達主分支之前通過了測試。因此,在合併到您的分支後產生的任何失敗都需要在該分支中解決,然後才能被接受回主。
爲什麼你有一個策略首先將一個特性合併到'master'中,當有機會你將不得不恢復和重新合併?解決您的問題的簡單方法是停止執行此操作。 –
我同意@TimBiegeleisen在這裏 - 而不是合併到master和迴歸測試中,合併到發佈分支或「開發」或類似的東西,迴歸測試所有東西,在需要的地方進行修復,然後在知道它時最終將*穩定的 –
@scrowler這是我向團隊提出的建議,但希望聽到有沒有更好的方法或技術解決方案。如果您想發佈答案,我很樂意接受它。 – BKK