如何从git repo中获取删除的文件


How to get the deleted files back from a git repo

本问题已经有最佳答案,请猛点这里访问。

当…

  • 文件是rm
  • 文件是git rm吗?
  • 文件是git rmgit commit吗?

  • 文件是rm

    如果知道要删除哪些文件:

    1
    git check -- filename

    1
    git checkout-index filename

    如果不知道要删除哪些文件,或者删除的文件太多:

    1
    git ls-files -d | xargs git checkout --

    文件是git rm

    先用reset回滚索引

    1
    git reset HEAD

    并使用上面列出的命令

    1
    git ls-files -d | xargs git checkout-index

    文件是git rmgit commit

    如果知道要删除哪个提交(例如:2ae853),则可以从该提交的上一个提交(2ae853^)中签出文件:

    1
    git checkout 2ae853^ -- filename

    如果忘记了删除哪些提交,请先使用rev-list查找提交:

    1
    git rev-list -n 1 HEAD -- filename

    并使用上一个命令返回文件。