📌  相关文章
📜  如何查看已删除的提交 git - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:38:49.475000             🧑  作者: Mango

如何查看已删除的提交 git?

有时候我们会不小心删除一个 Git 提交,但是却不清楚该如何找回已删除的提交。在这篇文章中,我们将探索如何查看已删除的提交。

方法一:使用 git reflog

git reflog 命令可以查看 Git 仓库的提交历史记录,包括已经删除的提交。我们可以使用该命令来找回已经删除的提交。

下面是使用 git reflog 找回已删除的提交的步骤:

  1. 打开命令行(或终端),进入要查询的 Git 仓库目录
  2. 输入以下命令:git reflog
  3. 根据输出信息,找到想要恢复的提交
  4. 输入以下命令: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

在这个示例中,我们可以找到最近两个提交,分别对应哈希值为 7ff930bd319960 的提交。如果我们想要恢复 d319960 提交,我们可以输入以下命令:

git checkout -b recover_commit d319960

这将会新建一个名为 recover_commit 的分支,其中包含了已经删除提交 d319960

方法二:使用 git fsck

git fsck 命令是一个底层的 Git 命令,用于检查 Git 对象是否正确存储在仓库中。我们可以使用该命令来查找已删除提交的哈希值。

下面是使用 git fsck 查找已删除提交的哈希值的步骤:

  1. 打开命令行(或终端),进入要查询的 Git 仓库目录
  2. 输入以下命令:git fsck --lost-found
  3. 根据输出信息,找到想要恢复的提交
  4. 输入以下命令: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 提交时,一定要保持谨慎。如果不慎删除了提交,我们可以使用上述两种方法来查找和恢复已删除的提交。