3

我是 git 的初学者,在尝试将所有内容恢复到我最后一次提交时遇到了一些问题。我不介意丢失任何我只想撤消所有内容的更改。我试过这个:

git revert b78da61000bc049133f4a5f7df6ddb3b6407454f

但我越来越

error: Your local changes to the following files would be overwritten by merge. 
Please, commit your changes or stash them before you can merge.
Aborting

我不想提交这些新更改,因为显然它们不起作用,我只想摆脱它们。有什么建议么?

4

2 回答 2

6

git revert 意味着创建一个新的提交,它“撤消”在指定提交中所做的更改。

你要:

git reset --hard <commit>

(这会从工作目录中删除任何未提交的更改,并将当前分支设置为指定的提交)

请注意,重置会修改历史记录。因此,如果您已经推送了这些提交,则不建议通过重置它们来删除它们,因为当您(强制)推送新历史时,其他人必须将他们的更改重新定位到新历史。

参见man git-resetReset Demystified

于 2012-08-20T14:03:16.497 回答
1

git reset --hard HEAD

如果您只想删除工作副本中的所有更改,您可以这样做:

git reset --hard HEAD

HEAD 是您当前分支中的最后一次提交(假设您在一个分支中)

git revert 不是你想要的

git revert 不会执行您尝试执行的操作,它用于撤消提交(提交与现有提交完全相反的内容,因此最终效果是删除它,同时保留历史记录)。

于 2012-08-20T14:07:50.600 回答