在我们尝试引入 Git 的组织中,我们现在遇到了与二进制文件相关的 Git 行为问题。
我们的项目将包含二进制和文本类型文件的良好组合,典型大小可能为 1 GB。我们担心几年后完整克隆会变得太大并导致性能和磁盘空间问题。
将迁移到 Git 的环境之一当前将其软件安装在称为 TCM 的系统上。7-10 年版本的存储库的总大小为 2 TB。
ClearCase 上的另一个环境有大约 7-8 年的数据,大约 1 TB。
由于 Git 不存储尤其会影响二进制文件的增量,因此 5 年多后的情况引起了我们的用户的关注。
浅克隆功能本来是理想的。但是文档说:“浅层存储库有许多限制(您不能克隆或从中获取,也不能从中推送或推入),但如果您只对具有长期历史的大型项目的近期历史感兴趣,则足够历史,并希望将修复作为补丁发送。”。对浅层克隆的粗略检查会表明它工作正常,但肯定有已知的用例无法工作,因此文档
是否有已知的用例列表无法工作?
问问题
1425 次
2 回答
4
我会敦促您将二进制文件存储在专用存储库中,易于扩展且易于清理:像Nexus这样的工件存储库。您在“如何处理大型 git 存储库?
”
中有其他选择。
试图将所有内容都保存在 Git 中,以某种不自然的方式使用它,总是会带来更多值得的麻烦:它是一个源代码控制工具。您不妨将它用于它的好处。
话虽如此,浅克隆不支持推送(或者,至少,它很危险:请参阅“为什么我不能从浅克隆推送? ”)。
对于只读目的,一个简单的git archive
就足够了,如“不理解 git shallow clone ”中所述。
2015 年更新:
- 实际上,您现在可以使用浅层克隆进行推/拉,请参阅“ (浅层克隆)是否
git clone --depth 1
比它想象的更有用? ” - 您甚至可以(使用 Git 2.5+)获取单个提交。请参阅“从远程 git 存储库中拉取特定提交”。
于 2012-10-30T11:27:14.893 回答
1
Git Annex也非常漂亮地解决了“git 中/附近的大二进制文件”问题。
于 2012-11-23T18:01:26.347 回答