【发布时间】:2016-05-28 21:45:40
【问题描述】:
我刚刚完成了以下一系列步骤,但我不知道如何恢复我的文件。
- git 添加文件.txt
- git commit -m "消息"
- rm 文件.txt
- git commit -am "消息"
理想情况下,我应该在第 2 步之后推送我的更改,然后删除,但我忘记了。有没有办法恢复文件?
非常感谢!
【问题讨论】:
我刚刚完成了以下一系列步骤,但我不知道如何恢复我的文件。
理想情况下,我应该在第 2 步之后推送我的更改,然后删除,但我忘记了。有没有办法恢复文件?
非常感谢!
【问题讨论】:
您可以使用checkout 命令从以前的版本恢复文件:
git checkout HEAD^ file.txt
如果文件已在较早的提交中被删除(假设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
通过这个您可以轻松恢复所有已删除的文件。
【讨论】: