返回介绍

reflog

发布于 2024-09-16 00:23:11 字数 1026 浏览 0 评论 0 收藏 0

有时候不小心手残删了一个还有用的 branch,或者把一个 branch 删了才想起来它还有用,怎么办?

reflog 是 "reference log" 的缩写,它可以查看 Git 仓库中的引用的移动记录。

如果不指定引用,默认显示 HEAD 的移动记录,除此之外,可以手动加上名称来查看其他引用的移动历史,例如某个 branch:

git reflog master

现在我在 git-practice 项目中手误删除了 feature1 分支。

查看一下 HEAD 的移动历史:

HEAD 的最后一次移动行为是 [从 feature1 移动到 main],在这之后,feature1 就被删除了。

所以它之前的那个 commit 就是 feature1 被删除之前的位置,也就是第二行的 fe9f77c。

现在切换回 fe9f77c,然后重新创建 feature1:

git checkout fe9f77c
git checkout -b feature1

刚刚删除的 feature1 就找回来了。

不再被引用直接或间接指向的 commit 会在一定时间后被 Git 回收,所以使用 reflog 来找回删除的 branch 的操作一定要及时,不然有可能会由于 commit 被回收而再也找不回来

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文