📅  最后修改于: 2023-12-03 15:38:49.475000             🧑  作者: Mango
有时候我们会不小心删除一个 Git 提交,但是却不清楚该如何找回已删除的提交。在这篇文章中,我们将探索如何查看已删除的提交。
git reflog
git reflog
命令可以查看 Git 仓库的提交历史记录,包括已经删除的提交。我们可以使用该命令来找回已经删除的提交。
下面是使用 git reflog
找回已删除的提交的步骤:
git reflog
git checkout -b <new_branch_name> <deleted_commit_hash>
其中 <new_branch_name>
是新建的分支的名称,<deleted_commit_hash>
是我们想要恢复的已删除提交的哈希值。
下面是一个 git reflog
查看到的输出示例:
$ git reflog
7ff930b (HEAD -> master) HEAD@{0}: commit: Update README.md
d319960 HEAD@{1}: commit: Initial commit
在这个示例中,我们可以找到最近两个提交,分别对应哈希值为 7ff930b
和 d319960
的提交。如果我们想要恢复 d319960
提交,我们可以输入以下命令:
git checkout -b recover_commit d319960
这将会新建一个名为 recover_commit
的分支,其中包含了已经删除提交 d319960
。
git fsck
git fsck
命令是一个底层的 Git 命令,用于检查 Git 对象是否正确存储在仓库中。我们可以使用该命令来查找已删除提交的哈希值。
下面是使用 git fsck
查找已删除提交的哈希值的步骤:
git fsck --lost-found
git checkout -b <new_branch_name> <deleted_commit_hash>
同样地,<new_branch_name>
是新建的分支的名称,<deleted_commit_hash>
是我们想要恢复的已删除提交的哈希值。
下面是一个 git fsck
查找到的输出示例:
$ git fsck --lost-found
Checking object directories: 100% (256/256), done.
Checking objects: 100% (4/4), done.
d3199606fbe34b10b835f9ace237f7b204c4294d missing tree d52d7ef6c7618923e0b62547c8434f02c8c0e73f
在这个示例中,我们可以看到,已删除提交的哈希值为 d3199606fbe34b10b835f9ace237f7b204c4294d
。
如果我们想要恢复该提交,我们可以输入以下命令:
git checkout -b recover_commit d3199606fbe34b10b835f9ace237f7b204c4294d
这将会新建一个 recover_commit
分支,其中包含了已经删除提交的所有更改。
总的来说,在处理 Git 提交时,一定要保持谨慎。如果不慎删除了提交,我们可以使用上述两种方法来查找和恢复已删除的提交。