git-lfs中的多个文件版本

时间:2017-03-05 05:45:44

标签: git github git-lfs

我试图在GitHub上估算我的项目的存储要求,并且有一些关于git-lfs如何存储多个版本文件的问题:

  • git-lfs存储多个版本的文件?
  • 如果是这样,对文件的每次更改都会导致复制完整文件,还是只存储差异?
  • 所有版本都会计入github上的配额吗?
  • 有没有办法控制保留多少个版本?

2 个答案:

答案 0 :(得分:6)

回答你的问题:

  1. git-lfs存储多个版本的文件?

    是。所有文件版本都由git-lfs存储。

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

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

  3. 所有版本都会计入github上的配额吗?

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

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

    没有。 Git LFS还没有这方面的功能。

  5. 查看更多详情here

答案 1 :(得分:3)

即使使用Git-LFS 2.0 (released two days ago,主要是locking and transfert queue),一般原则仍然相同。

official LFS spec中没有任何内容提及增量存储:每个版本都完整计算,并在issue 1101上发表评论

  

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

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

  

这是今年的路线图,但我不知道什么时候能够达到它。

围绕这类功能存在很多问题:

  
      
  1. 作为用户,您希望如何清除LFS对象?      
        
    • 您是否会清除特定版本的文件?
    •   
    • 你会清除文件的所有版本吗?
    •   
    • 您想要清除一系列版本吗?也许保留每周检查点的活动文件或其他东西。
    •   
  2.   
  3. 您是否希望能够在文件,文件类型或目录上设置策略?      
        
    • 保留n个版本的文件。
    •   
    • 定期(每日/每周/每月)文件检查点
    •   
  4.   
  5. 如果Git LFS无法下载已被清除的文件,您会期望它做什么?      
        
    • 指针文件
    •   
    • 没有
    •   
  6.   
  7. 如果由于某些服务器问题无法下载文件,您会期待Git LFS做什么?      
        
    • 暂停当前结帐/克隆/拉取命令
    •   
    • 指针文件
    •   
    • 没有
    •   
  8.