【发布时间】:2018-07-09 03:20:12
【问题描述】:
我最近想更新远程 git 存储库上的代码。我没有意识到它甚至还没有承诺。我确实创建了一些错误,所以我想将分支重置为之前的状态。
如你所料,我使用了git reset --hard。
好吧,从那以后一切(整个项目)都消失了;当然,.gitignore 文件/文件夹除外。我一直在想,有什么办法可以撤销吗?
我做的唯一步骤:
git add .
# Here I realized there is a bug in what I did
# I thought myself it would be better to undo that as it wasn't even something needed
git reset --hard
另外,我想指出这可能与这里的任何问题都不重复,因为其他人之前也有过一些提交。那是全新的存储库,并且已经“硬重置”。
【问题讨论】:
-
通常,你(.git)忽略的东西会被生成,你会
git clean -X然后生成它们。您的使用可能会有所不同。除此之外,由于您告诉 git 忽略这些文件,git 不会以任何方式跟踪它们,因此 git 不知道这些被忽略文件中的任何版本。 -
git reflog告诉你什么?实际上,如果您还没有提交任何内容,那么您应该无法重置。如果它有效,你实际上失去了一切。 -
@ckruczek 是的,我也有同样的想法,但事实恰恰相反。鲁迪能够写下很好的答案(我猜)。它肯定恢复了一些东西,但我无法阅读它,因为编码很糟糕,我不知道它是哪一个。如果我能以某种方式阅读它们,我会告诉你的。
-
我意识到我不小心打开了一张图片,这解释了奇怪的编码。所以@Rudi 是对的,而且帮助很大。为他点赞。