我运行了git状态,它告诉我一切都是最新的,没有本地更改。
然后我做了几次连续的改变,意识到我想扔掉一切,回到原来的状态。这个命令能帮我吗?
git reset --hard HEAD
我运行了git状态,它告诉我一切都是最新的,没有本地更改。
然后我做了几次连续的改变,意识到我想扔掉一切,回到原来的状态。这个命令能帮我吗?
git reset --hard HEAD
当前回答
如果您想恢复所有更改并更新当前远程主机(例如,您发现主机HEAD已向前移动,因为您已将其分支,并且您的推送被“拒绝”),您可以使用
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.
其他回答
在此处添加另一个选项。
我指的是标题:还原本地更改。它还可以应用于未准备提交的更改。
在这种情况下,您可以使用:
git restore <file>
返回到以前的状态。
简单地执行-
git stash
它将删除所有本地更改。您也可以稍后通过执行-
git stash apply
尝试此操作以还原本地分支中未提交的所有更改
$ git reset --hard HEAD
但如果您看到这样的错误:
fatal: Unable to create '/directory/for/your/project/.git/index.lock': File exists.
您可以导航到“.git”文件夹,然后删除index.lock文件:
$ cd /directory/for/your/project/.git/
$ rm index.lock
最后,再次运行命令:
$ git reset --hard HEAD
我搜索了一个类似的问题,
想要放弃本地提交:
克隆了存储库(gitclone)切换到dev分支(git checkout dev)做了几次提交(gitcommit-m“commit 1”)但决定放弃这些本地提交,返回远程(origin/dev)
以下情况也是如此:
git reset --hard origin/dev
检查:
git status
On branch dev
Your branch is up-to-date with 'origin/dev'.
nothing to commit, working tree clean
现在,本地提交丢失,返回到最初的克隆状态,即上面的第1点。
如果您在顶级项目目录中,请尝试以下操作:
git restore .
如果没有,则使用:
git restore :/
如果要还原子集的本地更改:
使用top pathspec magic还原所有工作树文件:git restore:/还原当前目录中的所有文件:gitrestore。文件类型(例如所有C源文件):git restore“*.C”
有关详细信息,请参阅git restore文档。
要删除未跟踪的文件:gitclean-f