如何将Git托管项目中的所有本地更改恢复到以前的状态?

我有一个运行git init的项目。 几次提交后,我做了git status ,告诉我所有内容都是最新的,并且没有本地更改。

然后我做了几个连续的变化,并意识到我想扔掉一切,回到我原来的状态。 这个命令会帮我吗?

git reset --hard HEAD

如果您想恢复对工作副本所做的更改,请执行以下操作:

git checkout .

如果您想恢复对索引所做的更改(即,您已添加),请执行此操作。 警告这将重置您的所有重新提交的提交!

git reset

如果您想恢复您所做的更改,请执行以下操作:

git revert <commit 1> <commit 2>

如果你想删除未跟踪的文件(例如,新文件,生成的文件):

git clean -f

或未跟踪的目录(例如,新的或自动生成的目录):

git clean -fd

注意:您可能也想运行

git clean -fd

git reset --hard

不会删除未跟踪的文件,因为git-clean会从跟踪的根目录中删除任何不在git跟踪下的文件。 警告 - 请小心! 首先使用git-clean运行干运行,以查看它将删除的内容是有帮助的。

当你收到错误信息时,这也特别有用

~"performing this command will cause an un-tracked file to be overwritten"

当你做几件事情时会发生这种情况,当你和你的朋友都添加了一个同名的新文件时,它会更新一个工作副本,但他首先将它提交到源代码控制中,并且你不关心删除未跟踪的副本。

在这种情况下,进行干运行也会帮助向您显示将被覆盖的文件列表。


如果您想恢复所有更改并且与当前的远程主服务器保持最新状态(例如,您发现主服务器主机已经向前移动,因为您已将其分支并且您的推送被“拒绝”),您可以使用

git fetch  # will fetch the latest changes on the remote
git reset --hard origin/master # will set your local branch to match the representation of the remote just pulled down.
链接地址: http://www.djcxy.com/p/3275.html

上一篇: How do I revert all local changes in Git managed project to previous state?

下一篇: Is there an easy way to delete untracked git files