由于一些操作,把项目中的大量文件删除了,还以为之前敲得代码都付之东流了,突然想起,我的项目使用git进行的版本管理,且一些更改都暂存在本地的仓库的,因此可以使用git来恢复存入仓库的文件
首先,运行以下命令检查当前的工作区状态:
git status
会显示下面三种类型的文件
-
已暂存(Staged)的新文件 :
- 这些文件已经被添加到暂存区(通过
git add
),但尚未提交。
- 这些文件已经被添加到暂存区(通过
-
未暂存(Unstaged)的删除操作 :
- 这些文件在工作目录中被删除,但删除操作尚未被暂存。
- 删除的文件列表与上述新文件完全一致。
-
未跟踪的文件(Untracked Files) :
- 这些文件从未被 Git 跟踪过,因此不会影响你的恢复操作。
这将显示哪些文件被修改、删除或未跟踪。如果文件已经被删除,Git 会提示类似以下内容:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
解决方案
以下是恢复这些文件的具体步骤:
1. 恢复所有被删除的文件
由于这些文件已经被暂存,你可以直接从暂存区恢复它们到工作目录:
git restore --source=HEAD --staged --worktree 文件
--source=HEAD
:指定从 HEAD 中恢复文件内容。--staged
:将文件恢复到暂存区。--worktree
:将文件恢复到工作目录。
2. 验证恢复结果
运行以下命令检查文件是否已恢复:
git status
如果恢复成功,你应该不会再看到这些文件出现在“Changes not staged for commit”部分。