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