如何管理大型git仓库?

问题描述 投票:1回答:2

我有一个非常大的[大于1 GB]的git存储库,当我们必须在新的本地实例上设置存储库时总会出现问题。有没有经过验证的方法,以便我们可以解决这个问题?

git github bitbucket
2个回答
1
投票

设置具有旧历史记录的“depot”克隆存储库,该存储库在共享文件系统上不会更改。你所有进一步的克隆--reference,回购及其内容将不会复制到新的克隆。阅读克隆文档以查看此用法建议,例如:在失去(或者如果你可能失败)访问你的参考站之前该怎么做。


1
投票

如果您不需要立即获得完整的历史记录,并且您使用的是最新版本的Git(1.9或更高版本),那么您可以进行浅层克隆:

  • git clone --depth 5 user@host:repo.git将把回购历史截断为每个分支上最近的5个提交
  • 自2017年12月1日起,git clone --shallow-since=2017-12-01 user@host:repo.git将把回购历史截至一切
  • git clone --shallow-exclude=abc1234 user@host:repo.git将克隆除指定的修订版本之外的每个修订版本以及可从指定版本修订的修订版本。您可以多次使用--shallow-exclude来指定几个不需要的修订版。

您还可以使用类似git clone --branch master --single-branch user@host:repo.git的东西克隆单个分支,这样只会在指定的repo上下拉主分支的历史记录。

https://www.atlassian.com/blog/git/handle-big-repositories-git上有更多细节可能会有所帮助 - 特别是如果你正在处理拥有大量二元资产的回购。

© www.soinside.com 2019 - 2024. All rights reserved.