从提交中恢复已删除的文件

时间:2016-05-28 21:45:41

标签: git commit restore

我刚刚完成了以下一系列步骤,但我不知道如何恢复文件。

  1. git add file.txt
  2. git commit -m“消息”
  3. rm file.txt
  4. git commit -am“Message”
  5. 理想情况下,我应该在第2步之后推送我的更改然后删除但我忘了。有没有办法恢复文件?

    非常感谢!

2 个答案:

答案 0 :(得分:12)

您可以使用checkout命令从上一版本恢复文件:

git checkout HEAD^ file.txt

或者,如果你还没有推送提交, 您可能更愿意重置提交:

git reset --hard HEAD^

这会将您的工作树重置为与上一次提交相同的状态。上次提交后的所有更改都将消失。

如果您不希望所有更改都消失,只需撤消提交本身的操作,您可以在没有--hard选项的情况下重置,并使用以下命令恢复已删除的文件:

git reset HEAD^
git checkout file.txt

答案 1 :(得分:1)

最好的方法,尝试一下

首先找到删除您文件的提交的提交ID。它将为您提供有关已删除文件的提交的摘要。

git log --diff-filter = D --summary

git checkout 84sdhfddbdddf〜1

Note- 84sdhfddbddd is your commit id

通过此操作,您可以轻松恢复所有已删除的文件。