假设我有一个巨大的git存储库,它有很多swfs和图像。我希望它们包含在托管的github存储库中,但它们不需要进行版本控制,我也不想将它们存储在其他地方。
每次提交存储库时,我可以删除历史记录的最简单方法是什么? ......这样,最后,我拥有所有swfs和图像,但没有历史记录。
编辑:swf文件可能经常更改,因此我们可以指望每次提交都有不同的版本。
答案 0 :(得分:5)
不是直接的答案,但我不确定这里是否存在问题:
如果您的swfs和图像文件没有移动,它们将在提交后具有相同的SHA1提交。它们将占用相同的磁盘空间并引用相同的blob 根据{{3}}:
“blob”对象只不过是一大块二进制数据。它不引用任何其他内容或具有任何类型的属性,甚至不是文件名。
由于blob完全由其数据定义,如果目录树中的两个文件(或存储库的多个不同版本中)具有相同的内容,则它们将共享相同的blob对象。
该对象完全独立于其在目录树中的位置,并且重命名文件不会更改与该文件关联的对象。
如果你的“资源”文件(swf和图像)及时发展,记录他们的历史记录很有意思,能够及时回到并看到一致的配置(即源+资源当时有效)
答案 1 :(得分:2)
如果不破坏完整存储库时间轴的SHA1完整性,将无法删除“历史记录”。这是Git最强大的功能之一:每个提交ID都是根据其完整的历史时间线构建的哈希。
但据我所知,二进制对象存储在某种差异中,因此不会浪费太多存储空间 - 如果这是您关心的问题。
否则,如果您只是希望获取大二进制数据并将其托管在其他位置,请尝试使用子模块。