Git 面试题 目录

如何使用 Git reflog 恢复误删的提交?

推荐答案

本题详细解读

1. 什么是 Git reflog?

Git reflog 是 Git 提供的一个工具,用于记录本地仓库中 HEAD 和分支的引用变化历史。每次 HEAD 或分支发生变化时,Git 都会在 reflog 中记录一条日志。这些日志可以帮助你找回误删的提交、分支或其他操作。

2. 如何使用 Git reflog 恢复误删的提交?

  1. 查看 reflog 记录: 使用 git reflog 命令查看本地仓库的操作历史。每条记录都会显示一个哈希值、操作类型(如 commit、reset、merge 等)以及操作的描述。

    输出示例:

  2. 找到误删的提交: 在 reflog 输出中,找到你误删的提交的哈希值。通常,你可以通过提交信息或操作描述来识别。

  3. 恢复到误删的提交: 使用 git reset --hard <commit-hash> 命令将当前分支恢复到误删的提交。这将丢弃当前工作目录和暂存区的所有更改,并将 HEAD 指向指定的提交。

3. 注意事项

  • reflog 是本地记录:reflog 只记录本地仓库的操作历史,不会同步到远程仓库。因此,如果你在本地删除了提交,但在远程仓库中仍然存在,你可以从远程仓库重新拉取。
  • reflog 会过期:reflog 记录会在一段时间后自动清理(默认 90 天),因此尽早恢复误删的提交。
  • 谨慎使用 git reset --hard:该命令会丢弃所有未提交的更改,因此在执行前请确保你已经保存了所有重要的工作。
上一篇: 什么是 Git reflog?
下一篇: 什么是 Git gc?
纠错
反馈