如果你删除了一个git分支,它的提交记录会随之消失吗?

3
如果我创建一个新的分支,做了一些提交,然后决定“哇,我在这里什么也没有做”,并删除该分支(git branch -d 分支名称),那么这几个提交会消失吗?也就是说,它们会从我的git日志中消失吗?

感谢您的详细回答! - Costa Michailidis
2个回答

3

是的,它们从git日志中消失了,但是在后续的git gc(垃圾回收器)命令之前,它们并没有从存储库中消失。

您仍然可以使用git reflog命令找到这些提交。


3
当提交的代码不再被任何分支引用时,它将不再出现在git log中,但为了防止意外丢失工作,这些提交将在一段时间内保留。有几个安全层:
  • 只有当提交不再有任何引用时,它们才会被视为垃圾进行回收。通常情况下,只有一个分支引用了提交,如果删除该引用,则会发生这种情况。
  • 除非另有配置,否则 Git 会保留分支的旧状态记录("reflog")。Reflog 条目最终将过期,取决于可配置的年龄阈值(事实上有两个:一个是包含当前分支状态可达到的内容的 reflog 条目,另一个是不再与该分支相关联的内容;后者的默认值为 30 天)。在此之前,git gc 将保留您的 reflog 条目,并且不会删除通过这些 reflog 条目仍然可达的提交。
  • 即使强制清空 reflogs,git gc 仍将保留对象,如果它们是在两周以内创建的(默认情况下;可以进行配置)。
  • 在所有这些操作完成后,运行git gc将物理删除这些对象。
要查看 reflogs,请尝试git log -g SOMEBRANCH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接