有一个 Java 项目,现在仓库很大,约 20G。项目大主要是因为:把上线用的 jar 包也提交进去了(方便线上自动化部署、回滚);另外,曾经有同事误提交了一些很大的二进制文件。
上线方式是:本地开发、测试完成,编译打 jar 包,提交进 Git 仓库;用自动化工具远程 pull jar 包部署上线。
现在造成的问题是:
- 本地开发时,pull 源代码很慢(有时侯需要等 2-3 分钟)
- 上线时,pull jar 包也很慢
第 1 点是主要问题,第 2 点勉强可以接受。
目前计划的拆分方案是:
新建两个仓库:一个只放代码;另一个只放 jar 包。只放代码仓库,可以解决本地开发时 pull 代码慢的问题。
现在的问题是:
两个仓库间 commit 版本号的 mapping 问题,如何让 jar 包仓库的 commit hash2 记录其对应的代码仓库 commit hash1 呢?
可以给 commit hash2 打上 tag,里面记录下对应的 commit hash1,有没有更好的、自动化的方法呢?
或者大家有没有更好的拆分方案?谢谢大家。