git lfs作为内容管理员

时间:2017-10-18 13:34:37

标签: git garbage-collection git-lfs gitlab-ce

我有一个使用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运行后,该空间已被删除。

Subset a region from boundary coordinates - Matlab

2 个答案:

答案 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