2014-09-04 94 views
1

我知道如何使用git重置爲之前的提交,但在仍然保留在當前提交的情況下,刪除先前提交的正確方法是什麼?例如,我有提交w,x,y,z,但我想從當前工作分支/樹/頭/遠程中刪除x,並仍然保留其餘部分。Git - 從分支中刪除提交併保持進度

我該怎麼辦?

+0

您是否想要創建一個新的提交(讓我們稱之爲'a')來解除從'w'到'x'的更改,並以'w-x-y-z - a'結束?或者你是否想將歷史重寫爲「x」從未存在,並以「w - y'z''結尾? – Jubobs 2014-09-04 23:13:14

+0

好吧,如果我可以在不清除它的情況下保留它的歷史,那將是理想的,那樣我仍然可以進入並解決問題。這基本上只是爲了消除特定提交發生的錯誤。 – DWils 2014-09-05 00:25:17

+1

然後Nils Werner的答案就是你想要的。 – Jubobs 2014-09-05 00:29:18

回答

5
git revert <id-of-commit> 

這基本上創造了一個新的提交與id-of-commit的「逆差異」。過去的所有提交都保持不變,但Git試圖撤消那個單獨的提交。

此外,Git 創建一個新的提交。這意味着您可以簡單地將回復推送到遠程存儲庫,而不會混淆歷史記錄。