gpt4 book ai didi

git - 大文件不变时 Git LFS 的优势?

转载 作者:行者123 更新时间:2023-12-03 20:17:03 25 4
gpt4 key购买 nike

我正在考虑将 Git LFS 用于存储库,该存储库将包含我们的系统镜像构建工具(在本例中为 Packer)使用的 ISO 和安装程序文件。然后,我们将它添加为我们的主仓库的子模块,其中包含构建脚本,以便它可以集成到我们的 CI 工具链中。

据我了解 Git LFS,大文件被替换为指针,因此 repo pull 和维护很快,然后文件通过不同的 channel 下载。

但是,当我们添加文件时,它们的名称中会包含版本号,因此不需要更新它们(例如 ubuntu-16.04.4-server-amd64.iso )。它们也不需要删除,因为我们将在构建脚本中通过该全名引用特定版本。我们基本上总是会添加并且很少(如果有的话)更新或删除。

似乎 Git LFS 主要用于更新/删除。我们的用例是否还有剩余的技术优势?

最佳答案

It seems like Git LFS is mainly for updating / deleting.



Git-LFS 主要是为了减小存储库的大小。 git clone通常会下载整个存储库,所以 git-lfs主要影响 clone .存储库包括所有文件和这些文件的所有版本, 包括已删除的 .

如果你做了一个小的 Ubuntu 更新和 git rm ubuntu-16.04.4-server-amd64.isogit add ubuntu-16.04.5-server-amd64.iso现在您要存储两个 ISO。另一个更新,它是三个。然后四个。五。六。没有 git-lfs ,每个人都必须下载并存储所有那些旧的已删除的 ISO。

如果您要存储像操作系统 ISO 或媒体文件这样的大文件,它们会迅速膨胀存储库的大小。这意味着任何克隆您的存储库的人都必须花费时间和带宽来下载所有内容,并在所有内容上花费磁盘空间。这会使您的开发过程变得臃肿,并让人们不愿下载 20 gig 的存储库来处理几个文本文件。

Are there any remaining technical advantages for our use case?



是的。使用 git-lfs 的成本很低.如果您尽早使用它,则成本最低。

您可以使用 git-lfs后来,但有一些附加条件。如果您在现有文件上使用它,它们将位于 git-lfs继续前进,但他们的旧版本仍将载入史册。您可以 use the BFG to rewrite history to retroactively put existing large files into git-lfs ,但是重写你的整个历史并不是你想要经常做的事情。您可能应该使用 git-lfs宜早不宜迟。

Here is a good run-down about what it takes to switch over later .

使用 git-lfs早期意味着开发人员不必仅仅因为它太大而考虑是否将某些东西放入存储库。如果他们觉得有什么东西应该放在版本控制中,他们就会把它放在版本控制中,不管大小。这简化了开发人员的决策过程,并使存储库更健康。例如,如果您需要在存储库中有六个不同的操作系统 ISO 进行测试,他们可以做到这一点,而无需争论存储库膨胀。

这也意味着您不必解决存储库膨胀问题。有多种方法可以仅克隆存储库的一部分,但它们都增加了复杂性。有一些方法可以让 Git 更有效地存储压缩的 ISO 和文件,你解压它们并让 Git 将它们存储为普通文件,但这又增加了复杂性。 git-lfs意味着您可以保持简单(r)。

最后是 git-lfs的存储端是灵活的。对于 LFS 存储,您不必依赖 Github 或任何特定的 Git 站点。

关于git - 大文件不变时 Git LFS 的优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50120861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com