我刚刚完成以下一系列步骤,但不知道如何恢复我的文件。
- git add file.txt
- git commit -m "Message"
- rm file.txt
- git commit -am "Message"
理想情况下,我应该在第二步后推送我的更改,然后再删除,但我忘记了。是否有办法恢复文件?
非常感谢!
您可以使用 checkout
命令从以前版本中恢复文件:
git checkout HEAD^ file.txt
如果文件在早期提交中被删除了(假设为229da640
),您可以通过传递提交的SHA1,然后加上^
来恢复它:
如果文件在较早的提交中被删除了(假定为229da640
),则可以通过传递提交的SHA1,后跟^
,来恢复该文件:
git checkout 229da640^ file.txt
如果您尚未推送提交,您可能更希望重置提交而不是撤消提交:git reset --hard HEAD^
这将重置您的工作树以与先前提交相同的状态。在先前的提交之后进行的所有更改都将消失。
如果您不希望删除所有更改,只需撤销提交本身的操作即可,您可以不使用 --hard
选项进行重置,并使用以下方法恢复已删除的文件:
git reset HEAD^
git checkout file.txt
最好的方法是尝试一下
首先找到删除您文件的提交ID。它将为您提供删除文件的提交摘要。
git log --diff-filter=D --summary
git checkout 84sdhfddbdddf~1
Note- 84sdhfddbddd is your commit id
^file.txt
是必需的吗?如果我不记得文件名怎么办?我考虑过一种(傻)情况,我会在一个新文件中编写一个新功能,然后一年后将其删除,然后再过一年想要重新使用。查看第一个提交记录(也就是在我删除它之前的那个提交记录)是否会显示该功能文件? - Merricat