2017-10-18 140 views
1

我有一个使用git lfs作为内容管理器的场景。作为内容管理器的git lfs

我的计划是做一个测试类似的东西:如果GC正常运行分支图像的所有修改过的文件必须被删除

          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) 

毕竟这一点。

我正确吗?因为lfs的GC必须删除所有未被引用的图像,所以分支已被删除,所以提交也必须被删除。

P.S.该项目的历史表明,只有2提交毕竟上述

UPDATE

我删除的项目和GC后运行空间已被删除。

enter image description here

回答

1

是的,如果中间文件成为通过任何混帐参考未引用的 - 这是一个分支(本地或远程)或标记 - 使用Git的历史则git-lfs文件变得适合删除。然而,不像自动GC在一些操作之后的git,git-lfs不会自动执行此操作(或者至少它不会持续我知道的时间,我已经退出循环了一会儿)。相反,您需要运行git lfs prune这将删除未引用的文件。

但是请注意,因为git lfs prune旨在一般恢复磁盘空间,它也可以通过最近的分支删除它们在你的混帐回购协议引用文件的本地版本,但没有(提供他们已经被推到你的主所以远程不仅仅存在于本地)。有关更多详细信息,请参阅git lfs prune --help

HTH

+0

我已经使用了'git的LFS本地prune'和清除.git文件夹中的存储必须执行,但这不是问题。问题是gitlab-ce服务器上的'/ mnt/storage/lfs-storage'还没有从未被引用的文件中清除。 – gmetax

+0

如果您推送了文件,那么确定那是另一个问题。修剪服务器上的内容完全取决于供应商,所以这是GitLab的问题。 –

+0

无论如何感谢您的帮助。 – gmetax

1

最有可能的gitlab-CE没有删除了所有的提交参考,再试一次的例子,但不MER