当超过数据配额时,“拆分”这个 github repo 的最佳方法是什么?

Sha*_*ang 5 git github quota

我向(一个已经很大的)repo 添加了几个 ~1M 文件。在下一次添加/提交/推送时,我收到此错误:

Git LFS: (0 of 1 files) 0 B / 28.35 KB   
batch response: http: This repository is over its data quota. Purchase more data packs to restore access.
Docs: https://help.github.com/articles/purchasing-additional-storage-and-bandwidth-for-a-personal-account/
error: failed to push some refs to 'https://github.com/USERNAME/REPO_NAME
Run Code Online (Sandbox Code Playgroud)

如果不支付更多的数据包(这在我目前的预算下是不可行的,尽管我正在使用 GitHub 的学术帐户进行研究),如何解决这个问题?

也许这是一个简单的问题,但我一直无法在网上找到指南:推荐用户将这个 repo 一分为二的方法是什么?我怀疑一个人会简单地创建一个新的 repo,将这些文件移到这个,然后在以前的 repo 中删除这些文件(删除过程中的所有分支)。

还有其他选择吗?很奇怪----这些文件大部分都小于1MB....自然如果是一个文件导致问题,那么这个过程会更简单一些。

dah*_*byk 5

您将遇到的挑战是,如果不重写其历史记录,您实际上无法使存储库变得更小。如果您可以重写历史记录,则可以使用git filter-branch批量修改历史记录--index-filter 'git rm --cached --ignore-unmatch path/to/big/file'(或使用--subdirectory-filter将存储库限制为单个子文件夹)。

不过,我不确定您将如何清除/分割 Git-LFS 存储在 GitHub 上的文件。

这很奇怪——大多数文件都小于1MB……当然,如果是一个大文件导致了问题,那么这个过程会更简单一些。

如果 1MB 文件不可压缩并且经常更改(或者文件数量很多),则预计存储库会很快变得相对较大。

  • “撤消”最近提交的最简单方法就是执行类似 `git push -f origin master~50:master` 之类的操作,这会将 `master` 向后移动 50 个提交(从技术上讲,向后移动 50 个第一父母,如果有的话)合并)。但是,即使您删除任何较新的分支,GitHub _仍然_会有对旧“master”的引用日志引用;支持可能会有所帮助。我不确定它如何与 Git-LFS 一起使用,但您最好按原样保留当前存储库,然后使用“filter-branch”从拆分的部分创建新的存储库。 (2认同)