--shared
和--reference <repo>
之间的区别。它们看起来非常相似。1.
--shared
和--reference <repo>
选项之间有什么区别?
2. 它们可用于在制作另一个本地克隆的多个本地克隆时节省驱动器空间吗?
3. 每个本地克隆可以检出不同的分支吗?注意:我知道我可以使用
git clone --depth <depth>
使用多个浅克隆截断历史记录,但每个克隆仍然必须至少复制一些历史记录才能这样做,所以我认为这可能不是保存驱动器空间的最佳方式(尽管比没有好)。背景:有时我喜欢在存储库中拥有我的工作副本的多个检出,因此我创建多个克隆,每个克隆都有自己的检出。
然而,我并不需要每个克隆版本的完整历史记录,只需要最新版本的分支,所以通过让每个克隆使用原始本地克隆的标签、提交、树和 blob 对象(例如通过符号链接)来节省大量驱动器空间是可能的。
git clone
文档
我查看了 git clone
文档,看看有没有可以用的东西。
--shared
我发现有一个 --shared
选项:
当要克隆的存储库位于本地机器上时,自动设置
.git/objects/info/alternates
以共享对象与源存储库。生成的存储库开始时没有任何自己的对象。
这似乎可能对我有用,帮助我在具有不同检出的多个克隆中节省驱动器空间,因为每个克隆与原始本地克隆共享对象。
--reference <repository>
如果参考仓库在本地机器上,自动设置.git/objects/info/alternates
以从参考仓库获取对象。将已存在的仓库用作备选项将需要从正在克隆的仓库复制较少的对象,从而减少网络和本地存储成本。
注意:请参阅--shared
选项的注意事项。
这意味着它将减少本地存储成本,因此这也可能很有用。