能够使用git标签恢复已删除的分支

时间:2013-08-27 12:13:30

标签: git

我有一个包含master和test分支的测试存储库。我确实在测试分支中做了一些更改,并对测试分支进行了标记。然后我删除了测试分支(不,我没有与master合并)。令人惊讶的是,当我尝试使用我之前做过的标签结帐时,我能够得到我之前删除的测试分支(当然是在DETACHED HEAD状态,在“no branch”中)。这怎么可能?有人能帮我理解吗?

1 个答案:

答案 0 :(得分:10)

操作后不会立即删除Git对象(例如,可以使用git reflog恢复它们)。您必须明确使用git gc(也调用git prune)手动删除它们,或等待一段时间控制gc.pruneexpire以自动修剪它们(如果{{1}启用了它})。

此外,只有在没有引用对象时才会永久删除对象,在这种情况下,您仍然有一个Tag,因此保留了提交及其历史记录。

检查此命令输出:

gc.auto

它将为您提供存储库的概述,您在此处看到的提交不会被垃圾收集器永久删除。