|
|
1
4
热释光;博士
长
不是这样的
纠正误解
commitor根据定义,任何其他Git对象都是可访问的,如果有某个外部名称直接命名commit(或object)本身,或者命名其他可以访问给定commit的对象(有关详细信息,请参阅
Think Like (a) Git
)使用
我想你说的是吉特所说的超然的头脑。
或哈希ID:
(对于分离的头部壳体,
这个
在以下情况下,它会分离头部:
分离头模式并不意味着您正在处理一个不可访问的提交。事实上,将头分离到一个不可访问的提交,会使该提交突然可访问
因为
现在是头犯了。换句话说,将HEAD分离到任何提交都会增加一种到达提交的方法,但就prune而言,有趣的问题不是这样的
有多少
名称到达所讨论的对象,只是数字是否为非零。一个名字,两个名字,十个名字,或者几百万个名字:所有这些对我来说都是一样的
Git的对象模型和对对象的引用
很好地描述了引用如何使提交可访问。不过,它没有提到,一般来说,引用可以指定
对象,而不仅仅是提交。这是因为它关注的是分支,而不仅仅是任何旧对象,以及两个分支名称(
每个提交都包含单个树对象的哈希ID。树对象包含一系列三值项:mode、name和hash-ID。mode指定此树条目是用于文件、子树还是用于更奇特的项(符号链接和gitlinks)。名称给出被表示的实体的名称,例如
如果我们为一次提交绘制所有这些,从最上面一行右边的分支名称开始,我们得到如下结果:
还有别的吗
指数
总之,在上图中,我们可以看到
如果你想展示
这就建立了一个
必要的
所有这些都解决了,让我们回到过去
这个
但是现在我们还需要了解关于Git对象的两件事:
释放
存储在文件系统中的单独文件中。这使得Git很容易对其进行操作,但意味着它的压缩程度很低。Git将根据命令(或通过
这个
一般来说,对象不会立即打包,因此最近创建的对象很可能是松散的。如果物体
有
不过,已经打包好了,现在还没有被引用,您需要运行
同时,作为对竞争的Git进程的保护,
这个过程需要时间。默认情况下,Git给自己14天的时间来完成这个过程。如果
如果您知道自己没有运行任何其他Git命令,可以手动覆盖默认值:
意味着任何未引用的松散对象都应该被删除,无论它们是多么新。因此,您所需要做的就是确保您的提交未被引用,然后使用“now”过期时间进行修剪。 |
|
2
1
Prune通常不会删除在最近一段时间内可以从任何ref访问的对象。。。我忘了,月它检查本地的回放。通过
|
|
Harry · 如何在编译时获取克隆的git仓库的标签 1 年前 |
|
Ooker · 如何从blob中删除秘密? 1 年前 |
|
|
hasdrubal · git日志图智能分支过滤器 1 年前 |
|
|
J. Doe · 为什么git中没有跟踪git文件? 1 年前 |