如何在git中恢复工作阶段到最后一次提交?


How to revert working stage to last commit in git?

我在工作阶段编辑了一些文件(没有添加到git add -A中)。没有承诺)。

现在,我想将更改恢复到本地分支中的最后一次提交。

怎么办?

我已经搜索了一点,发现:

1
git rebase -i HEAD

但后来我得到:

1
2
Cannot rebase: You have unstaged changes.
Please commit or stash them.

那么正确的方法是什么呢?


1
git stash

您可以将当前的工作状态存储到存储库中,稍后可以访问这些文件。在你"藏匿"之后,你应该自动地完成最后一次承诺。


您可以通过以下方式放弃所有未提交的更改:

1
git reset --hard

警告:这确实会消除所有阶段性的更改,或者只是在工作树中进行的更改,并返回到上一次提交的状态,因此请小心使用它。

如果您可能希望您的本地更改再次出现,并且只想暂时阻止它们(例如,处理其他事情),您可以执行以下操作:

1
git stash

…相反


如果你不想保留这些更改,那么

1
git reset --hard

或者如果你想留住他们

1
git reset --soft

如果你想保存以便你可以在那时候用信

1
git stash

将后者应用于

1
git stash --apply stash@{number}


现在你已经明白了,我强烈建议你读一读这篇文章,让它永远被理解。网址:http://git-scm.com/2011/07/11/reset.html


只需执行下面的命令。它将删除您的更改

1
2
git reset HEAD .
git checkout .