正如最近提出的一个问题,我正在寻找一种方法来加速Git存储库上的操作,这些存储库包含大量文件(约600万)。我宁愿不使用子模块。问题是操作很慢。是否可以拥有一个大型存储库,但是指示Git只关注存储库的一部分?我认为可能会创建一个稀疏结账,但是读取树操作似乎删除了稀疏检出文件中未指定的文件并且需要很长时间。是否可以执行读取树,使所有文件保持原样,并且只与稀疏检出文件中指定的文件数成比例?
答案 0 :(得分:1)
目前不是,不。 Git最近才(1.7+)添加任何稀疏结账支持,而且它仍然相当简单 - 主要是因为Git并不是真正设计为仅处理部分存储库。
它更适合作为每个项目的一个存储库版本控制系统。子模块是选择处理具有许多大型子组件的“项目”的方法。
答案 1 :(得分:0)
首先,我建议学习和使用子模块。
您可以使用
编写您喜欢的内容git ls-tree sha1
git show sha1:path/to/some/file.txt
和其他低级命令。另请参阅bash命令,例如
xargs
grep
cut
和管道。