我将文件提交到本地 git,然后将其推送到 github。
我执行以下命令来删除该文件,然后将其推送到 github:
git rm file.txt
git commit -m remove file.txt
git push -u github master
然后我意识到我想要文件。我尝试了以下说明: https://www.quora.com/How-can-I-recover-a-file-I-deleted-in-my-local-repo-from-the-remote-repo-in-Git
我运行了以下命令:
git rev-list -n 1 HEAD -- file.txt
它为包含我的文件的版本提供了哈希值:HASH。然后我在以下命令中使用它:
git checkout HASH^ file.txt
然后出现了以下错误:
error: pathspec 'file.txt' did not match any file(s) known to git
幸运的是,我能够去 github 并从那里恢复我的所有文件,但我仍然不知道如何在本地执行此操作,或者是否可能。
答案1
用来git reflog
获取文件所在点的提交哈希。然后用来git checkout <hash>
返回该提交哈希。
或者,您可以使用git checkout HEAD{1}
返回一次提交。