2017-10-18 208 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