2017-06-01 61 views
0

我有一個GitLab存儲庫有很多二進制垃圾(清理是可悲的不是一個選項)。我只需要一個實際上只有文本文件的子目錄。我需要獲得該文件夾AFAP。獲取最小路徑

現在我發現git archive並認爲我所有的問題都解決了。 它似乎雖然它不接受散列參考。是否有任何方法檢索git archive版本/子目錄的特定組合?

+0

你是什麼意思*「不接受哈希引用」*? 'git歸檔一些提交 - 路徑/到/文件夾「應該工作 – poke

+0

不根據文檔。見https://git-scm.com/docs/git-upload-archive – abergmeier

+0

'git upload-archive'!== ['git archive'](https://git-scm.com/docs/git-archive )明確提及'git檔案[012][ ...]'作爲它的用法。 – poke

回答

0

我認爲這個用例必須相當有限;您正在考慮獲取某些文件的快照,而沒有歷史背景或寫回更改的能力。好吧,好的...

當你使用archive--remote你幾乎不得不從拉。 如果您可以將標籤推送到遠程,您可以標記您想要的版本,然後您應該能夠從該標籤中提取標籤。如果你不能這樣做 - 如果你想要的版本沒有碰到標籤或者是當前分支的頭部 - 那麼你很可能不太好運。

該文件是非常wishy-washy即使這樣;當它歸結爲它時,您是否想要在這裏幫助您解決服務器問題。 git模型實際上並不支持子庫中的遠程訪問。

你可以玩,這取決於該回購的膨脹究竟怎麼組織的一些部分的解決方案:

你可以用淺和/或單支克隆玩。你至少需要爲完整的TREE版本提供你想要的版本,但是你可以最小化(或者消除)拖拽歷史記錄和不相關版本的文件。

即使您無法清理原始回購,如果您要頻繁閱讀此子樹的版本,可能值得使用filter-branchsubdirectory-filter創建一個只有子樹歷史的回購;然後從原始倉庫中的「下一個」提交中刪除該子倉庫,並將其替換爲新倉庫的子模塊引用。 (但是,如果只是一次拉,這顯然不值得這樣做。)