什么是仅限状态的Git存储库?

ard*_*ila 14 git

命令文档git update-index有关于--info-only交换机的说明:

--info-only用于注册文件而不将它们放在对象数据库中.这对仅状态存储库很有用.

由于Git是一个内容跟踪系统而不是文件跟踪系统,所以我很想知道你想要这样做的场景; 也就是说,使用索引注册文件而不实际将它们(可能是它们的内容)放在对象数据库中.

我还搜索了"仅限状态存储库"一词,但没有成功.有人可以澄清这样的存储库是什么以及它有什么用处?

pok*_*oke 9

添加该功能的更改是Bryan Larsen为"支持在没有对象数据库的情况下工作"的一系列补丁的一部分.这是他解释的:

有时您可能希望对变更,地点和由谁进行审计跟踪.您不需要知道更改的确切详细信息,并且文件非常大,以至于在对象数据库缓存中保留数据的额外副本非常昂贵.

Git(几乎)非常适合这种情况.那里的东西比git-diff-cache快得多.

git的设计也有利于此.git-update-cache --cacheinfo允许在没有数据库中的对象的情况下更新索引,然后可以围绕索引执行操作.然而,有一些不方便的东西,一个显示塞子.

实际上没有关于该线程上的原因的讨论,我可以找到另一个涉及该主题的内容.所以这可能是布莱恩玩过的想法并且想要为自己做好准备.

我个人并不知道任何实际使用它的东西,所以这可能是一个理论上的用例.另一方面,这个想法很简单,实际上可以用于某些事情.