超出限制后撤消git lfs

时间:2018-03-20 01:42:25

标签: git github git-lfs

我最近安装了Git-LFS来管理大文件。我很快就达到了1 Gb存储限制,现在当我尝试推送提交时,我提示:

  

批处理响应:此存储库超过其数据配额。购买更多   数据包以恢复访问。

并且没有推动。所以现在我无法推动回购。

购买更多数据包不是一种选择,但是在本地存储大型文件(即没有对其进行版本控制)是。

所以我想做的是:

  1. 停止监控LFS监控的文件(当前设置为.gitattributes中的所有* .csv)。
  2. 从git中删除这些文件,即不会对任何回购邮件大小做出贡献。
  3. 仍有本地存在的文件。
  4. 卸载Git-LFS。
  5. 尽可能少地中断历史记录,理想情况是只有删除的文件才会受到影响。
  6. 既然回购尺寸应该更小,那就回到正常推/拉。
  7. 我发现人们超出限制的地方有点信息,但没有任何东西可以做到以上几点。

    FWIW我通常使用Tortoise Git,但当然也有Git Shell。

2 个答案:

答案 0 :(得分:1)

  

有没有办法重写历史记录,以便省略csv文件,但其他方面是相同的?

这就是git filter-branch的用途。同样,它将重写历史记录,因此需要git push --force 另请参阅" Git - Remove All of a Certain Type of File from the Index":BFG repo cleaner可以更轻松/更快地使用。

答案 1 :(得分:0)

如果你用尽了 GitHub 的免费配额,但你不关心使用 GitHub 的 LFS 存储,那么你仍然可以通过“卸载”之前“卸载”git lfs 来推送带有指向 LFS blob 的指针的 GitHub 提交(无需上传 blob 本身)推:

$ git push origin master

batch response: This repository is over its data quota.
Account responsible for LFS bandwidth should purchase more 
data packs to restore access.

$ git lfs uninstall
$ git lfs uninstall --local

$ git push origin master
# Push worked!

但是,如果您在尝试使用指针推送提交时遇到 GH008 错误(预接收钩子被拒绝),那么上述技巧可能有帮助,也可能无济于事。有时有效有时无效,我不完全理解模式:

$ git push origin master
...
remote: error: GH008: Your push referenced at least 9 unknown Git LFS objects:
...
! [remote rejected] master -> master (pre-receive hook declined)