git lfs作为内容管理器
我有一个使用git lfs作为内容管理器的场景 我的计划是做一个类似这样的测试:git lfs作为内容管理器,git,garbage-collection,git-lfs,gitlab-ce,Git,Garbage Collection,Git Lfs,Gitlab Ce,我有一个使用git lfs作为内容管理器的场景 我的计划是做一个类似这样的测试: master images combined init lfs (1) create images branch (2) add 2 files
master images combined
init lfs (1)
create images branch (2)
add 2 files (3)
edit 2 files (4)
edit 2 files (5)
edit 2 files (6)
create branch from master (7)
combine images to combines as 1 commit (8)
delete images branch -
merge combined to master (10)
在所有这些之后,如果GC正确运行,则必须删除分支映像的所有更改文件
我说得对吗?因为lfs的GC必须删除所有未引用的映像,所以分支已被删除,所以提交也必须被删除
另外,项目的历史记录显示,在完成上述所有工作后,只有2次提交
更新
我删除了项目,在gc运行之后,空间被删除了
是,如果中间文件未被git历史记录中的任何git引用引用(即分支(本地或远程)或标记)引用,则
git lfs
文件可以删除
然而,与git不同的是,git会在某些操作后自动执行GC操作,git lfs
不会自动执行此操作(或者至少上次我不知道,我已经脱离循环一段时间了)。相反,您需要运行git lfs prune
,它将删除未引用的文件
但是,请注意,由于git lfs prune
的设计目的通常是恢复磁盘空间,因此它也可能会删除git repo中引用的文件的本地版本,但不会删除最近的分支(前提是这些文件已推送到主远程,因此不只是本地存在)。有关更多详细信息,请参见git-lfs-prune--help
HTH最有可能的是gitlab ce没有删除提交的所有引用,请重试该示例,但不要mer我已在本地使用了
git lfs prune
,并清除了.git文件夹上必须执行的存储,但这不是这里的问题。问题是gitlab ce server上的/mnt/storage/lfs storage
尚未从未引用的文件中清除。如果您已推送文件,则这是另一个问题。修剪服务器上的内容完全取决于供应商,所以这是GitLab的一个问题。