请教 Git 仓库拆分方案

2018-02-23 20:14:42 +08:00
 Nostalgia

有一个 Java 项目,现在仓库很大,约 20G。项目大主要是因为:把上线用的 jar 包也提交进去了(方便线上自动化部署、回滚);另外,曾经有同事误提交了一些很大的二进制文件。
上线方式是:本地开发、测试完成,编译打 jar 包,提交进 Git 仓库;用自动化工具远程 pull jar 包部署上线。

现在造成的问题是:

  1. 本地开发时,pull 源代码很慢(有时侯需要等 2-3 分钟)
  2. 上线时,pull jar 包也很慢

第 1 点是主要问题,第 2 点勉强可以接受。

目前计划的拆分方案是:
新建两个仓库:一个只放代码;另一个只放 jar 包。只放代码仓库,可以解决本地开发时 pull 代码慢的问题。

现在的问题是:
两个仓库间 commit 版本号的 mapping 问题,如何让 jar 包仓库的 commit hash2 记录其对应的代码仓库 commit hash1 呢?
可以给 commit hash2 打上 tag,里面记录下对应的 commit hash1,有没有更好的、自动化的方法呢?

或者大家有没有更好的拆分方案?谢谢大家。

3776 次点击
所在节点    程序员
23 条回复
huawuya
2018-02-24 12:28:48 +08:00
jar 或二进制文件应该用 git lfs,artifactor 或 nexus 来存储,用 maven 来管理,不应该放到 git 里
Reficul
2018-02-24 12:38:14 +08:00
@Nostalgia 😂不要在意这些细节
lunny
2018-02-24 12:57:38 +08:00
可以自建 Gitea,支持 git lfs

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/432028

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX