如果更改已提交,但随后您恢复了该提交,则将创建一个恢复提交,其中包含删除所有文件的更改。如果是这种情况,您可以先尝试键入以查看分支git log
头部提交背后的提交历史。master
可以通过运行签出此列表中的所有内容以返回到该版本,您看到的提交的十六进制哈希git checkout a1b2c3d4...
在哪里。a1b2c3d4...
在不查看日志的情况下返回分支中上一次提交的另一种方法是只需键入git checkout @~
or git checkout HEAD~
。
如果您在分支的日志中找不到任何内容,您可能还没有创建恢复提交,并且以某种方式以不同的方式重置了分支,一个可能的解决方案是使用git reflog
. 这应该显示提交的十六进制哈希列表,您可以按照与前面提到的相同的方式检查这些哈希。reflog 包含您在本地工作树中签出的每个提交的列表,即使它们跨越不同的分支,或者在使用git reset
.
如果您找到了包含您想要的所有内容的提交,请记下其十六进制哈希,然后master
再次使用签出git checkout master
,然后运行git reset --hard a1b2c3d4...
,a1b2c3d4...
您想要的提交的哈希在哪里,这将master
带回该状态。
如果您无法在提交日志或 reflog 中找到包含所有文件的提交,那么很遗憾,您可能无法使用 git 恢复您的文件,如果您从未真正进行过提交,就会出现这种情况,并且 GitKraken 已清理并完全从您的工作树中删除分阶段的更改。此时,您将不得不在其他地方寻找恢复选项,例如:
- 备份
- 您的文本编辑器/IDE 的交换 文件或文件历史记录
- 文件恢复软件针对您的文件系统运行,就好像您刚刚删除了一些文件,没有使用 git,也没有任何备份