恢复 - git reset --hard HEAD^

12

很不幸,我多次执行了git reset --hard HEAD^命令,在几个文件中丢失了相当大的代码块。是否有办法恢复这些提交或在此情况下前进到之前的HEAD位置,以便我可以找回那些丢失的行?

2个回答

17

使用reflog来恢复之前HEAD的SHA1值。特别是文章reflog, your safety net对你来说将会非常相关。文章中说:

这个命令最常用的情况是,你刚刚执行了git reset并把你的HEAD回滚到前面几个提交。但是糟糕了,你需要那个位于第二次提交中的代码。现在该怎么办呢?

一旦找到想要回到的提交的SHA1值,使用以下语句之类的内容:

git reset --hard 0a1b2c

3
你也可以通过重置到HEAD@{n}来恢复数据,需要从reflog中找到相应的n值。 - Michael Mrozek
一个人也可以使用 git log -g 查看 reflog,这可能比 git reflog show 提供更多的上下文。 - Chris Johnsen
1
干得好,你刚刚救了我一命。 - Humphrey Bogart
请使用以下命令进行代码回滚并指定日期参考:git reset --hard "HEAD@{1000000 years ago}" - J-16 SDiZ

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接