Git重置 - 硬没有按预期工作

时间:2015-01-30 21:11:28

标签: git git-reset

我正在尝试检查存储库的历史记录。我停在了一个我希望将存储库返回到特定提交的位置。我搜查了一下

git reset --hard 12345

我收到的消息是HEAD现在是12345.我打开文件夹看到我想看的文件,但它没有改变!

我想回到2009年首次创建该文件时。但是该文件是新版本(在2010年编辑之后)。

我检查了工作目录,但没有。我也跑了

git clean -f -d

但没有改变。

我不知道现在该怎么办。我想回过头来看看文件的外观,但我想回到整个存储库。

3 个答案:

答案 0 :(得分:4)

公平地说,我不明白你的回购后发生了什么事

git reset --hard 12345

应该强调的是,你通常应该避免" git reset --hard"命令。风险是丢失任何未提交的更改,并最终导致悬空提交。如果你想丢弃提交12345之后所做的所有提交,你真的会使用该命令。我邀请你阅读这个thread about git reset --hard

在你的情况下,我实际上已经创建了一个临时分支" temp_branch"这将指向提交12345。 命令是

git checkout -b temp_branch 12345

这会将repo切换到新分支" temp_branch",其HEAD将是12345.新分支的创建不是强制性的,但如果我需要从该提交进行更改,我觉得很方便

答案 1 :(得分:1)

如果您只想查看提交时的内容,请勿使用重置。重置是为了移动分支机构,你可以通过这种方式让自己陷入困境。请查看git checkout 12345。然后你可以再次使用checkout回到原来的地方,git checkout master(或任何分支)。

至于你的文件没有被更改,你确定在提交中有什么不同?查看git diff 12345 branch_name -- filename

答案 2 :(得分:0)

对我来说,我没有stage个文件,这就是git reset --hard对我不起作用的原因
我只是运行了以下命令

  

git add . =>暂存所有文件(不要忽略.

     

git reset --hard =>重置所有更改