git pull从本地删除文件

时间:2019-07-18 08:59:31

标签: git

在将新提交推送到上游存储库时,出现一个错误,我需要在推送之前先进行新的更改,但这会导致丢失一些更改。

我执行的命令是:

  

git reset --hard HEAD @ {12}

1 个答案:

答案 0 :(得分:1)

列出执行git reset --hard之前的可能状态(在本例中为git reset --hard HEAD @ {12})。

除12次提交(可恢复)外,关于您的其他更改:

  1. 您刚刚进行了更改,但没有执行git addgit commit

    恢复:您无法恢复那些更改,因为它在git记录中不存在。不过,您可以尝试IDE本地备份副本(对于intellij:https://blog.jetbrains.com/idea/2008/01/using-local-history-to-restore-deleted-files/)。

  2. 您刚刚使用git add添加了它,但没有提交它。

    恢复:不保证,但是您可以尝试恢复。

    先前已上演的更改(git add)应该可以从索引对象中恢复,因此,如果这样做了,请使用git fsck --lost-found查找与之相关的对象。 (这会将对象写入.git / lost-found /目录;从那里可以使用git show查看每个文件的内容。) 如果幸运的话,您的IDE进行了备份,则可以检查IDE是否挽救了您的生命(intellij:https://blog.jetbrains.com/idea/2008/01/using-local-history-to-restore-deleted-files/)。

  3. 您使用git commit

    提交了更改

    恢复:是的,在这种情况下,您可以恢复。使用:

  git reflog

获取提交的提交哈希。   然后使用:

git reset --hard <commit-retrieved-using-reflog>