6

我们有一个供多个用户使用的服务器。磁盘空间非常有限,因为我们的 git repo 非常庞大,每次有人克隆它时,它都会消耗 130G 的空间。

我知道 git 并非旨在成为集中式工作流程,但这是一种非常特殊的情况。我们考虑过升级硬件,但这是一条很长的路,因为它不是云实例。

我试着摆弄,git worktree但很快就遇到了权限问题。我理想的设置将是一个单一的仓库,多个用户可以通过它进行推送和拉取。

我查看了以前的线程,但不幸的是那里没有可靠的建议,它们是相当老的线程。因此,任何新的建议都将受到高度赞赏。

4

3 回答 3

2

另一种方法是使用git worktree, 以检出多个不同路径中的多个分支,同时仅保留一个克隆存储库。

将其与带有过滤器和稀疏锥的部分克隆相结合,并且:

  • 您的主存储库可能比现在更小(因为您的集体工作不需要的一些文件被过滤,并且因为没有获取完整的历史记录)
  • 签出您的不同分支,而无需再次克隆存储库。
于 2020-11-26T20:59:27.080 回答
1

也许查看git subtreegit submodule将您的大 git repo 分成几个较小的。它仍然保持相同的大回购,但可以更易于管理。

子模块注意事项:

当您克隆这样一个项目时,默认情况下您会获得包含子模块的目录,但其中没有任何文件

所以当你说

$ git clone https://github.com/myco/MainProject

它只下载主仓库和子模块的文件夹。然后,您可以指定要下载的子模块文件。

$ cd subModuleDir
$ git submodule init
$ git submodule update

因此,它只克隆子模块的文件,而不是所有文件。

于 2020-11-26T14:47:07.970 回答
1

我不确定你在这里问什么:你有一台机器被多个用户使用,每个克隆都在破坏可用空间。

然后,只需在所有 Windows 用户都可以访问的文件夹中拥有一个副本,并让每个人在那里的一个单独的分支上工作。

任命某人为“经理”来管理合并和管理“祝福”信息。

于 2020-11-26T14:59:03.747 回答