为了账号安全,请及时绑定邮箱和手机立即绑定

带有大文件的git

带有大文件的git

Git
拉丁的传说 2019-12-20 12:11:07
带有大文件的git形势我有两个服务器,生产和开发。在生产服务器上,有两个应用程序和多个数据库(MySQL),我需要分发给开发人员进行测试。所有源代码都存储在GitLab开发服务器和开发人员只使用此服务器,无法访问生产服务器。当我们发布一个应用程序时,Master登录到产品中,并从Git中提取新版本。数据库很大(每个数据库超过5亿并在统计),我需要尽可能容易地将它们分发给开发人员进行测试。可能的解决办法在将数据库转储到单个文件的备份脚本之后,执行一个脚本,该脚本将每个数据库推送到自己的分支。如果开发人员想要更新他的本地副本,他会提取其中一个分支。这个被发现不起作用。生产服务器上的Cron每天保存二进制日志,并将它们推入该数据库的分支。因此,在分支中,有每天变化的文件,开发人员提取他没有的文件。当前的SQL转储将以另一种方式发送给开发人员。当存储库的大小变得太大时,我们将向开发人员发送全部转储,并刷新存储库中的所有数据,并从一开始就开始。问题解决方案可行吗?如果git正在推送/拉到/从存储库,它是上载/下载整个文件,还是只是对它们进行更改(即添加新行或编辑当前文件)?
查看完整描述

3 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

您真的非常不希望大型二进制文件被检入Git存储库。

您添加的每一个更新都将累加到存储库的总体大小,这意味着您的Git回购将需要越来越长的时间来克隆和使用越来越多的磁盘空间,因为Git存储在本地的分支的整个历史记录,这意味着当有人签出分支时,他们不仅需要下载数据库的最新版本;他们还必须下载所有以前的版本。

如果需要提供大型二进制文件,请分别将它们上载到某个服务器,然后签入带有URL的文本文件,开发人员可以在其中下载大型二进制文件。FTP实际上是更好选项,因为它是专为传输二进制文件而设计的,尽管HTTP可能更简单。



查看完整回答
反对 回复 2019-12-20
  • 3 回答
  • 0 关注
  • 517 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信