如何将大文件夹推送到 github,忽略所有超过 100MB 的文件?

How to push a large folder onto github, ignoring all files over 100MB?

我有一个非常大的文件夹。在这个文件夹中有很多视频和散落在各处的小文件。我看重的是小文件,而不是视频。

我想将所有小文件备份到Github。如果我直接尝试将文件夹上传到 Github,我将收到多个大文件(>100 MB 文件)错误。视频和小文件散落各处,很难一一删除。

我知道如何从 Github 中删除一个巨大的文件:Git error, need to remove large file

但是,对于 所有 我文件夹中的大文件,有没有一种简单的方法可以做到这一点,这样我就可以轻松地将其他所有内容推送到 Github 上?

注意:我不想使用云存储,因为我只想存储我的小文件。

如果要在本地保留这些大文件,首先要从 Git 中删除它们,但将它们保留在工作副本中。

  1. 找到所有 find . -size +100M -not -path './.git/*'
  2. 从 Git 中删除文件,但保留文件本身:git rm --cached
  3. 将它们添加到 .gitignore

您可以合并步骤 1 和 2:find -X . -size +100M -not -path './.git/*' | xargs git rm --cached

我建议以此为契机将所有大型资产移动到一个目录并忽略该目录。

既然它们已从 Git 中删除并安全地被忽略,请使用 BFG Repo-Cleaner 将它们从历史记录中删除。

bfg --strip-blobs-bigger-than 100M --no-blob-protection my-repo.git