我有一个使用git lfs作为内容管理器的场景。
我的计划是进行类似的测试:
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必须删除所有未引用的图像,所以分支已被删除,因此提交也必须被删除。
P.S。在上述所有内容之后,项目的历史只显示了2次提交
更新
我删除了该项目,在gc运行后,该空间已被删除。
答案 0 :(得分:1)
是的,如果中间文件被git历史记录中的任何git引用(分支(本地或远程)或标记)取消引用,那么git-lfs
文件就有资格删除。
然而,与某些操作后GC自动执行的git不同,git-lfs
不会自动执行此操作(或者至少上次我不知道,我已经知道了)已经离开了一段时间)。相反,您需要运行git lfs prune
,这将删除未引用的文件。
但请注意,由于git lfs prune
通常用于恢复磁盘空间,因此它还可能会删除git仓库中引用的文件的本地版本,但不会删除最近的分支机构(如果它们是' ve被推到你的主遥控器,所以不要只在本地存在)。有关详细信息,请参阅git lfs prune --help
。
HTH
答案 1 :(得分:1)
最有可能gitlab-ce没有删除提交的所有引用,再试一次这个例子但是没有mer