如果提交了更改,但是您恢复了该提交,那么将创建一个恢复提交,其中包含删除所有文件的更改。如果是这种情况,可以先尝试输入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完全清理并删除了工作树中的分阶段更改。在这一点上,你将不得不寻找其他地方恢复选项,如: