4
我相信有一羣GIT用戶那裏誰是有這個問題的:如何恢復GIT中的錯誤修復?
- 從主建立一個新分支。我們稱之爲featureX。
- 某處,在工作featureX時,你意識到你想以前的修正提交:
- 你提交你的補丁。
- 你做你的rebase和壁球/ fixup。
- 稍後,您想對您的主人進行重新整合以將最新更改納入功能X。
- 因爲你的分支已經發生分歧而導致事情中斷(修正不是在主程序中完成的)。你有一個糟糕的一天。
這是我第二次發生這種情況。第一次,我沒有太多的歷史featureX,並簡單地做了一個新的分支關閉主。 你對此有何看法?你會如何解決這個問題?是否有可能git reset
某個reflog?在這種情況下,我可以撤銷rebase並將修復提交回featureX(使用交互式底圖)。
我確定有不同的方法去做,但我想這是一個常見的問題。
感謝您的回答!但是,由於我在發生錯誤的重整後發生了其他更改(在reflog中),所以我不想僅僅回到rebase之前。我寧願讓那個特定的rebase撤消。換句話說,我可以重新設定reflog嗎? :)我目前沒有代碼庫,但可以在10個小時左右嘗試。關於整體重組;我將功能合併回集成分支。當我想要將最新的集成分支更改同步到功能分支時,我將重新分配。那不是你所做的? – Ztyx 2012-07-12 06:09:03
你必須瞭解rebase的作用。它爲您想要移動到另一個起點的所有提交生成補丁。然後它逐個應用它們。爲了「撤銷」rebase,你只需再次rebase,但指定你想要的範圍提交的起點。語法是這樣的:'git rebase - 到新開始範圍結束範圍'。不,我很少變硬。如果你仔細閱讀我的文章,你會發現我從同一點開始了每件作品或功能。從那裏開始,任何操作都是將特徵合併到2個可以有時重置的特殊分支。 – 2012-07-12 07:37:23
此外,谷歌「計算機科學家git」。您需要徹底瞭解歷史記錄如何存儲在git中。 – 2012-07-12 07:38:21