我是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
我不想提交这些新的更改,因为显然它们不起作用,我只是想摆脱它们。有什么建议吗?
答案 0 :(得分:5)
git revert意味着创建一个新的提交,“撤消”在指定提交中完成的更改。
你想:
git reset --hard <commit>
(这将从工作目录中删除任何未提交的更改,并将当前分支设置为指定的提交)
请注意,重置会修改历史记录。因此,如果您已经推送了这些提交,则不建议仅通过重置它们来删除它们,因为当您(强制)推送新历史记录时,其他人必须将其更改重新更改为新历史记录。
答案 1 :(得分:1)
如果您只想删除工作副本中的所有更改,可以执行以下操作:
git reset --hard HEAD
HEAD是您当前分支中的最后一次提交(假设您在分支中)
git revert不会执行您要执行的操作,它用于撤消提交(提交与现有提交完全相反的操作,以便在保留历史记录的同时删除它,同时保留历史记录)。 / p>