0

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

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

该怎么办?

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

git rebase -i HEAD

但后来我得到:

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

那么正确的方法是什么?

4

5 回答 5

3

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

git reset --hard

警告:这真的会摆脱所有暂存或仅在工作树中的更改,并返回到上次提交的状态,因此请谨慎使用。

如果您可能希望再次恢复本地更改,并且只想暂时让它们离开(例如处理其他事情),您可以这样做:

git stash

... 反而

于 2012-10-13T09:13:43.427 回答
2

git stash

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

于 2012-10-13T09:14:22.843 回答
1

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

于 2012-10-13T09:16:57.637 回答
1

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

git reset --hard

或者如果你想保留它们

git reset --soft

如果你想保存,那么你可以使用它们的字母

git stash

将后者应用于

git stash --apply stash@{number}
于 2012-10-13T09:18:31.580 回答
0

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

git reset HEAD .
git checkout .
于 2012-10-13T09:14:54.957 回答