1. 前言
在使用 Git 进行版本控制工作时, git pull 命令是我们常用的命令之一。然而,有时我们可能会误操作或者不小心删除了某些文件,在使用 git pull 命令后,这些文件也会被从本地仓库中删除,那么,这个时候,我们该如何处理这些被删除的文件呢?
2. 查看删除记录
2.1 Git 的状态检查
在使用 git pull 命令后,如果有文件被删除,Git 会记录这个删除操作。我们可以使用 git status 命令来查看 Git 的状态检查。当我们执行此操作后,Git 会显示出当前仓库的状态以及与上一次提交的区别。
git status
执行上述命令后,将会显示如下图的状态信息:
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add<file>..." to update what will be committed)
(use "git checkout --<file>..." to discard changes in working directory)
deleted: deleted_file.txt
no changes added to commit (use "git add" and/or "git commit -a")
可以看到,根据 Git 显示的状态信息,我们可以知道哪个文件被删除了。此时,Git 会将被删除的文件列在 “delected” 后面,例如上面的例子中的 “deleted_file.txt” 文件。
2.2 查看提交记录
Git 会记录每个提交的操作记录。所以,如果你误删了某一个文件,你可以通过查看之前提交的记录来找到这个文件。
git log --summary
上述命令将会列出之前的提交和它们的摘要,提交日志历史和更改摘要。每个提交都会列出它的 SHA-1 校验和,提交者,日期,提交消息和更改总结。
我们可以通过查看提交记录来找到我们想要恢复的文件。例如,如果你想找到一个之前已删除的文件,你可以查看最新的提交,那些未被删除的文件就是需要恢复的文件。
3. 恢复删除的文件
3.1 通过Git来恢复
当你找到了之前被删除的文件后,你可以使用 git checkout 命令来恢复它们。
git checkout <file>
上述命令中的 <file> 表示你要恢复的文件名。恢复后,你将在仓库中看到这个文件。
3.2 通过版本来恢复
另一种恢复被删除的文件的方法是使用版本控制。如果你之前要删除文件的某个版本,那么你可以使用这个版本来恢复被删除的文件。
首先,我们需要列出可恢复的文件的列表:
git log --name-status --oneline
然后,我们需要查找到我们想要恢复的文件所在的版本号:
commit eaa9e9a
Author: Jingru
Date: Mon Dec 25 10:07:00 2022 +0800
Added file.txt
A file.txt
commit 5446a2d
Author: Jingru
Date: Sat Dec 23 15:14:00 2022 +0800
Initial commit
A README.md
在上面的示例中,我们希望恢复的文件名为 “file.txt”。在此版本控制下,文件是在提交 eaa9e9a 中添加的,所以我们将使用这个版本来恢复文件。使用以下命令来回退到之前的版本号:
git checkout eaa9e9a -- file.txt
这个命令将会从 eaa9e9a 版本中恢复丢失的文件。Git 使用 -- 代表文件名,这是提醒 Git 的版本管理,我们现在所在的文件名是 “file.txt”
4. 总结
在 Git 中,我们可以使用状态检查和提交记录来查找被误删除的文件。如果我们成功地找到了被删除的文件,我们可以使用 Git checkout 或者版本控制来恢复这些文件。
强烈建议在修改之前首先创建一个备份文件,以防止误操作而导致不需要的损失。