GitKraken文件丢失了!需要帮助恢复

时间:2017-03-15 15:20:44

标签: git gitkraken

所以,我对git有一点经验。所以我一直在使用GitKraken来利用git的功能。我相信我已经搞砸了,并且失去了数周的工作。我上演了一些文件并进行了提交,但实际上,我并不想在一次提交中暂存所有文件。所以我所做的是右键单击提交,它可以是,还原更改,或删除提交或类似的东西。所以我这样做了,认为我只是修改了git repo。然后我检查了我的主分支没有当前文件。现在我不确定哪个操作删除了我的文件,但现在它们已经丢失了。我认为检查一个分支并没有弄乱未跟踪的文件,所以我认为这是一个安全的操作......

HELP! ; _;我在哪里开始弄清楚如何恢复这些丢失的文件?

1 个答案:

答案 0 :(得分:2)

如果更改已提交,但您还原了该提交,则将创建一个还原提交,其中包含删除所有文件的更改。如果是这种情况,您可以先尝试键入git log以查看master分支头部提交后提交的历史记录。可以通过运行git checkout a1b2c3d4...来检出此列表中的所有内容以返回到该修订版,其中a1b2c3d4...是您在提交时看到的十六进制哈希。在不查看日志的情况下返回分支中的上一个提交的另一种方法是只键入git checkout @~git checkout HEAD~

如果你在分支的日志中找不到任何东西,你可能还没有创建一个恢复提交,并以某种方式以不同的方式重置分支,可能的解决方案是使用git reflog。这应该显示一个提交的十六进制哈希值列表,您可以按照前面提到的方式检出。 reflog包含您在本地工作树中检出的每个提交的列表,即使它们跨越不同的分支,或者在git reset出错后仍无法从任何分支访问。

如果您找到了包含所需内容的提交,请记下其十六进制哈希值,然后再次使用master结帐git checkout master,然后运行git reset --hard a1b2c3d4...,其中a1b2c3d4...是你想要的提交的哈希值,这将使master回到该状态。

如果您无法在提交日志或reflog中找到包含所有文件的提交,则遗憾的是您可能无法使用git恢复文件,如果您从未实际提交过,则会出现这种情况,并且GitKraken完全清除并删除了工作树中的分阶段更改。此时,您必须在其他地方查找恢复选项,例如:

  • 备份
  • 您的文字编辑器/ IDE的swap filesfile history
  • 文件恢复软件针对您的文件系统运行,就好像您刚刚删除了一些文件而没有使用git而没有任何备份
相关问题