我將一個檔案提交到本地 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}
返回一次提交。