【问题标题】:Restore deleted files from commit从提交中恢复已删除的文件
【发布时间】:2016-05-28 21:45:40
【问题描述】:

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

  1. git 添加文件.txt
  2. git commit -m "消息"
  3. rm 文件.txt
  4. git commit -am "消息"

理想情况下,我应该在第 2 步之后推送我的更改,然后删除,但我忘记了。有没有办法恢复文件?

非常感谢!

【问题讨论】:

    标签: git commit restore


    【解决方案1】:

    您可以使用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
    

    【讨论】:

      【解决方案2】:

      最好的方法,试试吧

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

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

      git checkout 84sdhfddbdddf~1

      Note- 84sdhfddbddd is your commit id
      

      通过这个您可以轻松恢复所有已删除的文件。


      【讨论】:

        猜你喜欢
        • 2012-07-29
        • 1970-01-01
        • 1970-01-01
        • 2020-12-16
        • 1970-01-01
        • 2012-02-11
        • 1970-01-01
        • 2014-05-11
        相关资源
        最近更新 更多