我删除了一个文件夹中的所有内容,但该文件夹是空的。我的远程仓库中还有一份副本。但是当我做了 git pull
它没有放回已删除的文件是不是应该这样做?
所以我做了一些研究,发现您可以通过以下方式恢复文件
git checkout <revision> -- <name of file>
但这只适用于文件。
如何检索目录中的所有文件?
最佳答案
您可以对文件执行的所有操作,也可以对文件夹执行。
另请注意 Find and restore a deleted file in a Git repository
文件已从工作树中删除但尚未提交:
如果您还没有索引(git add
)您的更改,您可以恢复目录的内容:
git checkout -- path/to/folder
如果删除已经被索引,你应该先重置它:
git reset -- path/to/folder
git checkout -- path/to/folder
恢复完整的工作树(不是单个文件夹),但丢失所有未提交的更改
git reset --hard HEAD
在过去的某个提交中删除文件时:
找到影响给定路径的最后一次提交。由于该文件不在 HEAD 提交中,因此此提交一定已将其删除。
git rev-list -n 1 HEAD -- <file_path>
然后使用脱字符 (^
) 符号检查之前提交时的版本:
git checkout <deleting_commit>^ -- <file_path>
从远程提交恢复完整的工作树
git reset --hard <revision>
关于git - 在 Git 存储库中恢复已删除的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30875205/