2012-12-03 65 views
1

我想在我們的開發過程中應用gitflow方法,理論上我喜歡它。但有一點不在任何地方......如何切錯提交[git]

每個人都把他們的結果推到develop分支。在計劃中,我們有10個問題應該完成併發布到beta版,然後發佈到生產版。 10個問題中的2個並沒有最終確定,但部分已經在開發分支,因爲開發人員認爲他做得很好,但是在測試bug再次出現之後。而現在我們決定不用等待,而這2個問題將得到解決,我們需要進行上傳,意味着需要在release分支上進行測試。

在原gitflow文章說:

關鍵時刻岔開了新的發佈分支從開發時 發展(幾乎)反映了新版本的理想狀態。在 至少那些針對所有功能的發佈將要建造的必須 將在合併在這個時間點

開發但要怎麼做,如果在develop分支歷史,我們可以看到,不需要夫婦合併?我需要切斷它們嗎?還是做其他事情?

謝謝。

回答

2

在這種情況下最安全的做法是使用git revert來反轉提交。這將創建一個完全顛倒提交的提交。因此,git revert 1234567將在您的分支上創建一個新的提交,以提交SHA ID 1234567

有關執行此操作的幾點:

  • 後你做一個混帳復歸再次合併分支不會帶來變化從恢復提交回來,你必須恢復的復歸提交。因此,在我們的git revert 1234567示例中,假設這創建了回覆提交09876。現在,您的開發人員已正確實現了他的功能,並且希望將其合併到中。要通過恢復來清除更改,現在必須git revert 09876,然後合併其更新的分支。
  • 爲了使自己更容易從最近的到最近的順序恢復提​​交。所以如果你有提交1, 2, 3其中1HEADgit revert 1, git revert 2, git revert 3。然後,如果這些還原創建提交8, 9, 10以重新引入這些更改,則按照最近到最近的順序將它們還原。
  • 它也有可能恢復合併提交,但這是一個比較複雜一點,它在手冊頁中所述,git help revert
  • 如果你需要做這個,你應該閱讀由Linus this article,他介紹了許多你需要的東西想一想。
+0

謝謝你,我想它可能在這種情況下gitflow方法來完成更容易:)不是那麼漂亮......在任何情況下,感謝您的回答。 – user1016265

+0

我認爲,如果你使用幾乎任何分支模型,而不僅僅是git流,就會發生這種情況。如果你沒有使用git flow,你仍然需要恢復過早提交的代碼,對吧? –