2017-03-15 67 views
-1

所以,我有一点经验与git。所以我一直在使用GitKraken来利用git的功能。我相信我在某个地方搞砸了,失去了几个星期的工作。我发布了一些文件并进行了一次提交,但仅仅意识到,我不想在一次提交中将所有文件分级。所以我所做的就是右键单击提交,它可以恢复更改,也可以删除提交或其他类型的提交。所以我这样做,认定我只是修改了git回购。然后我检查出我的主分支没有当前文件。现在我不确定哪些操作会删除我的文件,但现在它们已经丢失。我以为检查一个分支不会与未跟踪的文件混乱,所以我认为这是一个安全的操作...GitKraken文件丢失!需要帮助恢复

帮助! ; _;我甚至可以从哪里开始弄清楚如何恢复这些丢失的文件?

回答

2

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

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

如果你发现你想提交包含一切,与git checkout master注意到它的十六进制散列,然后结账master再次,然后运行git reset --hard a1b2c3d4...,其中a1b2c3d4...是你想要的提交的哈希值,这将带来master回到那个状态。

如果您无法在提交日志或引用日志中找到包含所有文件的提交,那么您可能无法使用git恢复文件,如果您从未真正进行提交,则会出现这种情况,并且GitKraken完全清理并删除了工作树中的分阶段更改。在这一点上,你将不得不寻找其他地方恢复选项,如:

  • 备份
  • 你的文本编辑器/ IDE的swapfilesfile history
  • 文件恢复软件对你的文件系统中运行,就好像你有刚刚删除了一些文件,通常不使用git,也没有任何备份