相关疑难解决方法(0)

git clone --shared和--reference有什么区别?

阅读文档后,我还没有真正理解的差异之间有什么--shared--reference <repo>.他们看起来很相似.

  1. 这些 --shared 选项有什么区别--reference <repo>

  2. 在制作另一个本地克隆的多个本地克隆时,它们可以用来节省驱动器空间吗?

  3. 每个本地克隆都可以签出不同的分支吗?

注意:我知道我可以使用带有截断历史的多个浅克隆git clone --depth <depth>,但是为了做到这一点,每个克隆仍然必须复制至少一些历史记录,所以我想这可能不是最佳的保存方式驱动空间(虽然它总比没有好).

背景

有时我喜欢在存储库中有多个工作副本的签出,因此我创建了多个克隆,其中每个克隆都有自己的签出.

但是,我并不需要每个克隆的整个历史记录,只需要最新版本的分支,因此我可以通过让每个克隆使用标记,提交,树,来节省大量的驱动器空间,原始本地克隆中的blob和blob对象(例如,通过符号链接).

git clone 文件

我检查git clone文档,看看有什么我可以使用的.

--shared

我看到有一个--shared选项:

当要克隆的存储库位于本地计算机上而不是使用硬链接时,会自动设置.git/objects/info/alternates为与源存储库共享对象.生成的存储库在没有任何自己的对象的情况下开始.

这看起来可能有助于我使用具有不同签出的多个克隆来节省驱动器空间,因为每个克隆与原始本地克隆共享对象.

--reference <repository>

然后我也看到了--reference <repository>选项:

如果引用存储库位于本地计算机上,则自动设置 .git/objects/info/alternates以从引用存储库获取对象.使用现有存储库作为备用存储库将需要从克隆的存储库中复制更少的对象,从而降低网络和本地存储成本.

注意:请参阅该--shared选项的注意事项.

这说明它会降低本地存储成本,因此这也可能有用.

git

28
推荐指数
2
解决办法
9779
查看次数

标签 统计

git ×1