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

时间:2012-10-13 09:11:29

标签: git

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

现在我想将更改还原为我本地分支中的最后一次提交。

该怎么办?

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

git rebase -i HEAD

然后我得到:

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

那么正确的方法是什么?

5 个答案:

答案 0 :(得分:2)

您可以使用以下命令丢弃所有未提交的更改:

git reset --hard

警告:这实际上会消除您在工作树中暂存的所有更改,并返回到上次提交的状态,因此请小心使用。

如果您可能希望再次返回本地更改,并且只是想让它们暂时停止(例如,为了处理其他事情),您可以这样做:

git stash

......而不是

答案 1 :(得分:2)

使用

git stash

您可以将当前工作状态存储到存储中,以后可以访问这些文件。在你“藏匿”之后,你应该自动进入你的最后一次提交。

答案 2 :(得分:1)

现在你进入了我的强烈建议你阅读这篇文章,并让它永远理解。 http://git-scm.com/2011/07/11/reset.html

答案 3 :(得分:1)

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

git reset --hard

或者如果你想保留它们

git reset --soft

如果你想保存,那么你可以在那时使用它们

git stash

将后者应用于

git stash --apply stash@{number}

答案 4 :(得分:0)

只需执行以下命令即可。它会删除您的更改

git reset HEAD .
git checkout .