如何将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?