【发布时间】:2013-10-17 20:41:06
【问题描述】:
也就是说,我们有一个 20MB 的 bzip2 sql 开发数据文件,我们希望将其与我们的开发代码一起进行版本控制。
但是,默认情况下,我们不希望每次新克隆/获取时都从存储库中删除此文件。
一种解决方案似乎是将这个大文件存储在单独的存储库中,然后使用子模块链接到它。然后,开发人员仅在需要检索和重置其开发数据库时才获取 db 文件。然后,当模式发生变化时,数据库文件将被更新,提交到外部 repo,并更新子模块。
这是一个好的开发工作流程吗?或者有更好的方法吗?
编辑:未压缩的 SQL 转储为 360MB。
编辑:Github 说“不”,不要这样做:
数据库转储
大型 SQL 文件不能很好地与版本控制系统(例如 吉特。如果您希望为您的开发人员提供最 最近的生产数据集,我们建议使用 Dropbox 进行共享 您的开发人员中的此类文件。
【问题讨论】:
-
我会说子模块是的,bzip 不是。让 repo 压缩来做到这一点,如果默认设置不够,请调整其配置设置,但首先 compress 会关闭几乎所有 git 的版本控制功能。
-
@jthill 不幸的是,该文件对于 github 来说太大了,未压缩:remote: error: File production-dump.sql is 362.49 MB;这超出了 GitHub 的 100 MB 文件大小限制
标签: database git development-environment git-submodules