计算机上同一存储库的多个副本

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

我有一台本地计算机,在该计算机上有相同GIT存储库的多个副本,每个副本供不同的用户使用。所以它可能看起来像这样:

/home/userA/BigRepository
/home/userB/BigRepository
/home/userC/BigRepository
/home/userD/BigRepository
/home/userE/BigRepository

假设每个存储库使用〜2-3GB,20个用户将使用40-60GB的不必要的冗余数据。用户可以在其私有分支上开发某些内容,但是大多数数据仍然是冗余的。这就是为什么我想优化磁盘使用率。

我想知道什么是最好的方法。


我已经检查过的内容:

  • git clone --local-每个存储库将与裸存储库共享.git /对象,但这意味着.bare存储库必须在本地可用(因此它不能是GitHub,对吗?)
  • git clone --depth <n>-这将减少存储库的大小,但也将本地历史记录减少到n个对象。
  • [git clone --shallow-since-据我了解,它将与--depth选项类似,但是将自指定时间起保存提交。
  • git clone --separate-dir-我自己的主意,使用同一位置存储所有.git目录。 (因此,进行克隆时,20个存储库中的每一个都将链接到同一位置。不知道是否有可能,只是分享我的想法。

--depth表示存储库最多具有n次提交,还是仅在克隆时才进行检查,然后该存储库会随着时间增长?

git github git-clone diskspace
1个回答
0
投票

您可以尝试将.git目录从一个位置符号链接到所有其他工作空间

git clone git@server:BigRepository /home/userA/BigRepository
mkdir /home/userB/BigRepository/
ln -s /home/userA/BigRepository/.git /home/userB/BigRepository/.git

但是,每个人都将更改其他人的分支,即您的master分支可能会意外移动。您的工作区将不会更改,因此您的文件将按预期方式运行。但是Git会突然报告更改。

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