Git-lfs中的多个文件版本

8

我正在尝试估算GitHub项目的存储需求,对于git-lfs如何存储多个文件版本有几个问题:

  • git-lfs是否存储多个文件版本?
  • 如果是,每次更改文件是否会导致完整文件的复制,还是只存储差异?
  • 所有版本是否都计入GitHub上的配额?
  • 是否有任何方法可以控制保留的版本数量?

1
你可以创建一个仓库,运行一些测试,然后删除该仓库。 - Schwern
2个回答

10

回答您的问题:

  1. Git LFS是否会存储文件的多个版本?

    是的。Git LFS会存储所有文件版本。

  2. 如果是这样,对文件进行的每一次更改是否都会导致完整文件被复制,还是只有差异被存储?

    是的。每一次微小的更改都会导致一个新的完整文件被存储。

  3. 所有版本是否都会计入github的配额?

    是的。每次推送新版本时,总文件大小都会计入您的配额。

  4. 有没有办法控制保留多少个版本?

    没有。Git LFS目前没有这个功能。

在此处查看更多详细信息


你能详细说明一下你对第三个问题的回答吗?我在你发的链接里找不到任何解释。 - Andrzej Pronobis
首先,实际上GitHub没有配额:“GitHub没有任何设置磁盘配额”,但是...无论如何...这段文字:“我们建议将存储库保持在每个1GB以下。如果将大文件排除在存储库之外,则很容易保持在此限制范围内。”让我们相信LFS文件不会被计算在内,对吗? - Marcelo Ávila de Oliveira
这是不正确的:https://help.github.com/articles/about-storage-and-bandwidth-usage/ 明确说明LFS的存储和带宽有配额限制。你所提到的是普通的git。我的第三个问题仍未得到回答。 - Andrzej Pronobis
嗯...真的...文档有点棘手...我更新了我的答案。 - Marcelo Ávila de Oliveira

3
即使Git-LFS 2.0 (两天前发布), 主要是锁定和传输队列, 但总体原则仍然相同。 官方LFS规范中没有提到增量存储:每个版本都完全计算,正如问题1101所评论的那样。

Git LFS无法从服务器中删除仍由git提交引用的旧对象

因此,控制保留多少个版本,或者拥有某种滚动存储(其中n+1版本被删除)仍需实现。

这将在今年的路线图上进行,但我不确定我们何时会开始实施。

有许多关于这种功能的问题:
作为用户,您希望如何清除LFS对象?
1. 您会清除特定版本的文件吗? 2. 您会清除该文件的所有版本吗? 3. 您是否想清除一系列版本?也许保留活动文件的每周检查点或类似内容。
您是否希望能够对文件、文件类型或目录设置策略?
1. 保留n个文件版本。 2. 定期(每天/每周/每月)对文件进行检查点。
如果Git LFS无法下载已清除的文件,您会希望它做什么?
1. 指针文件 2. 什么都不做
如果由于某些服务器问题,Git LFS无法下载文件,您会希望它做什么?
1. 停止当前的checkout/clone/pull命令 2. 指针文件 3. 什么都不做

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接