如何将大文件夹推送到 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 中删除它们,但将它们保留在工作副本中。
- 找到所有
find . -size +100M -not -path './.git/*'
- 从 Git 中删除文件,但保留文件本身:
git rm --cached
。
- 将它们添加到
.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
我有一个非常大的文件夹。在这个文件夹中有很多视频和散落在各处的小文件。我看重的是小文件,而不是视频。
我想将所有小文件备份到Github。如果我直接尝试将文件夹上传到 Github,我将收到多个大文件(>100 MB 文件)错误。视频和小文件散落各处,很难一一删除。
我知道如何从 Github 中删除一个巨大的文件:Git error, need to remove large file
但是,对于 所有 我文件夹中的大文件,有没有一种简单的方法可以做到这一点,这样我就可以轻松地将其他所有内容推送到 Github 上?
注意:我不想使用云存储,因为我只想存储我的小文件。
如果要在本地保留这些大文件,首先要从 Git 中删除它们,但将它们保留在工作副本中。
- 找到所有
find . -size +100M -not -path './.git/*'
- 从 Git 中删除文件,但保留文件本身:
git rm --cached
。 - 将它们添加到
.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