Git reset --hard 没有按预期工作

标签 git git-reset

我正在尝试检查存储库的历史记录。我停在了我想将存储库返回到特定提交的位置。我搜索了,我做了

git reset --hard 12345

我收到消息说 HEAD 现在位于 12345。我打开文件夹查看我想查看的文件,但它没有改变!

我想回到 2009 年那个文件第一次创建的时候。但是该文件是新版本(在 2010 年编辑后)。

我检查了工作目录,但那里什么也没有。我也跑了

git clean -f -d

但没有任何改变。

我现在不知道该怎么办。我想回到过去看看文件的样子,但我想回到整个存储库。

最佳答案

说句公道话,我不明白你的 repo 之后发生了什么

git reset --hard 12345

需要强调的是,您通常应该避免使用“git reset --hard”命令。风险是丢失您拥有的任何未提交的更改,并且最终会出现悬而未决的提交。如果您想丢弃在提交 12345 之后所做的所有提交,您将真正使用该命令。我邀请您阅读此 thread about git reset --hard

在您的情况下,我实际上会创建一个指向提交 12345 的临时分支“temp_branch”。 命令将是

git checkout -b temp_branch 12345

这会将 repo 切换到新分支“temp_branch”,其 HEAD 将为 12345。创建新分支不是强制性的,但我发现如果我需要从该提交中进行更改,这很方便。

关于Git reset --hard 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28244684/

相关文章:

git - ssh:启动时未从钥匙串(keychain)加载身份

Git 审查 : submit particular commit from multiple commits

linux - 无法使用git send-email发送源码和补丁

Git:如何撤消提交*和*恢复到最后一个分支

git - 在 Git 中丢弃更改的正确方法

android - Eclipse Android 和 gitignore

混帐: "Warning: Changing a readonly file"

git - 撤消推送到文件的更改

git - 有没有一种方法可以干净轻松地撤消 git merge?