已达到 bitbucket 的 2 GB 限制。弹出有关超出存储大小和只读访问权限的警告。将我的本地存储库迁移到 lfs,如下所示。
#!/bin/sh
#
# Migrating repository to LFS using extensions from root `.gitattributes`.
# Get extensions specified in `.gitattributes`:
lfs_extensions=$(cat ./.gitattributes | grep -o '^[^ ]*' | tr '\n' ',' | sed
's/,$//g')
# Migrate files with given extensions and rewriting history in all local
branches:
git lfs migrate import --everything --include="$lfs_extensions" --verbose
之后做了
git gc -aggressive --prune=now
并在这一切之后检查
git count-objects -v -H
它给了我
count: 0
size: 0 bytes
in-pack: 277884
packs: 1
size-pack: 2.24 GiB
prune-packable: 0
garbage: 0
size-garbage: 0 bytes
那些。存储库的大小仍然是 2 GB,甚至变得更大了一些。
.gitattributes 的内容
Assets/Content/** filter=lfs diff=lfs merge=lfs -text
\# filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.ai filter=lfs diff=lfs merge=lfs -text
*.tif filter=lfs diff=lfs merge=lfs -text
*.tiff filter=lfs diff=lfs merge=lfs -text
*.raw filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.flac filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.FBX filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.skp filter=lfs diff=lfs merge=lfs -text
*.max filter=lfs diff=lfs merge=lfs -text
*.a filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.7z filter=lfs diff=lfs merge=lfs -text
*.tar.gz filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.unitypackage filter=lfs diff=lfs merge=lfs -text
*.aif filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.rns filter=lfs diff=lfs merge=lfs -text
*.reason filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text
# Image
# Audio
# Video
# 3D
# etc
/\# filter=lfs diff=lfs merge=lfs -text
另外,我想看看在 git 的主存储库中什么都一样重,为什么没有把它带到 LFS?
写作
$ git verify-pack -v .git/objects/pack\pack-48da725c12c669fde2fdedccf3f88de0b9d31b75.idx
我得到一个答案
fatal: Cannot open existing pack file '.git/objects/packpack-
48da725c12c669fde2fdedccf3f88de0b9d31b75.idx'
.git/objects/packpack-48da725c12c669fde2fdedccf3f88de0b9d31b75.pack: bad
问题
1) 我怎样才能知道哪些文件占用了我的非 LFS 存储库中的空间?
2)如何删除它们并将存储库恢复到足够的大小?
补充:
git lfs ls-files给出应该在 LFS 中的那些文件的正常列表,即 迁移奏效了。
git ls-files给出所有文件的简单列表,包括 LFS 和非 LFS。但它应该是这样的吗?
事实是存储库跟随分支
origin/master,因此可以checkout在其上进行。因此,他将有关它的信息存储在存储库中,因此大小如此之大。我们只需删除该分支上保存的信息,并返回存储库中的位置。需要检查是否有垃圾(远程分支)并清理后
准备好!
给我们的尺寸几乎减少了两倍。