git会修剪一个无分支但被标记的提交吗?

时间:2016-08-20 09:41:15

标签: git

据我所知,git偶尔会修剪任何分支都无法访问的提交。但是,它是否仍会删除这些提交,即使它们有标签?

我正在考虑做一些关闭提交并标记它们,但只有一次提交,所以不需要它们附加分支。

2 个答案:

答案 0 :(得分:3)

没有。任何可以从任何 ref(分支,标签,甚至存储)或可传递的(即他们所有的父母)都可以访问的提交,只要那些指向提交的指针就可以安全地进行垃圾收集存在。

如果您可以通过命名的引用来访问您的提交,无论其类型如何,您都可以确保它及其完整历史记录可用并保留在存储库中。

答案 1 :(得分:3)

不,它不会删除分支,标签,索引等引用的任何提交或这些提交的任何父级。请参阅git gc的{​​{3}}的“备注”部分:

  

git gc非常努力地保护它收集的垃圾。特别是,它不仅会保留当前分支和标记集引用的对象,还会保留索引引用的对象,远程跟踪分支,refs / original /中git filter-branch保存的引用,或者reflogs(可能在后来修改或重绕的分支中提交引用。)

     

如果您希望收集某些对象而不是这些对象,请检查所有这些位置,并确定在您的情况下删除这些引用是否有意义。