我已经阅读了有关在Git存储库中存储二进制文件的现有问题,但有些方面仍然不清楚.
存储库包含大约50 MB的代码源和大约1 GB的二进制文件.二进制文件很少更改.
Jua*_*uan 10
如果从不涉及文件,则在性能方面没有任何差别.
每个提交都标记修改后的文件,因此当提交它时,应用未标记在其中的文件,它们并不重要,无论它们是1Kb还是1 Gb.如果文件出现在提交中,那么显然很重要,因为通常二进制文件处理起来较慢.
现在,主要问题是克隆存储库不是涉及应用提交的唯一操作.例如,当您更改为不同的分支时,git必须删除所有提交的应用程序,直到公共提交,然后应用其他分支的所有提交,直到达到所需的签出提交,或者合并或重新定位git必须分析所有提交找到差异.
基本上,每当必须通过git读取包含对二进制文件的修改的提交时,性能很可能会受到影响,并且由于git的工作方式,提交会经常"使用".
关于你的问题,它基本上取决于你的意思是"很少改变".只要您通常使用的分支机构没有对二进制文件进行修改,这应该不是问题,但如果您在检查不同的提交时进行了跟踪修改,则性能会受到影响.
它可以影响像git gc或之类的操作git repack,在那里完成 deltification。请参阅“ Git 的包文件是增量而不是快照吗? ”。
这就是为什么我通常只在版本控制中存储一个文本文件,声明在哪里可以找到我需要的二进制文件,而不是存储二进制文件本身。以“ git include 从另一个存储库编译的 dll ”为例。