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 创建一个新的提交。这意味着您可以简单地将回复推送到远程存储库,而不会混淆历史记录。