的子樹工作,我希望做的the FreeBSD repository一個子集的一些工作。問題:這個存儲庫非常大; git clone
拉下來接近2 GB。我只需要其中的一小部分來完成我想要做的事情;目前,大約140 KB。大Git項目
我希望能夠從上游拉的變化(我真的寧可不要應用補丁),但我估計我需要在0%到推背的機會。
似乎每次我拒絕路徑是一條死衚衕:
- 如果我克隆與
--depth 1
上游回購,我不能把它推到Github上。 (「不允許淺度更新」。Ubuntu 16.04上的Git 2.7.4) - 即使我
git rm
我不想要的東西(只留下140KB的工作目錄),然後clone --single-branch
,它拉下1.5 GB。我想知道如果可能只是這些包太糟糕了,並且有很多「虛假分享」,但我試圖重新包裝(根據我看到的一些隨機命令),它仍然在〜880 MB之後。如果我再次克隆,那也一樣。 - 我想
git gc
而且只是去和做的事情遠,差遠了(6.6 GB)。 - 我可以
filter-branch
掉不需要的東西,但好像我不能,如果我這樣做拉之後。
有一些工作流程,將在這裏工作,或者我應該只是切斷連接到上游,filter-branch
一切的,然後就拉補丁有新提交到上游?我應該忘記FreeBSD Github鏡像並以某種方式使用git-svn
來製作回購? (最後,我想要的一切將不會被包含在一個單一的目錄,也就是說,我會想foo/bar
和foo/baz
但不foo/qux
)
(而且什麼了是獲得並應用這些補丁的最佳方法? )
當然,推回正常工作,並且我能避免工作的複印尺寸與稀疏檢出,就像你說的。但是我想首先避免多GB的下載。 (更具體一點:一個稀疏的*結帳*我認爲根本沒有幫助我;我將有一個分支或整個回購分支,只有我感興趣的子集,所以作爲只要我在那個分支上,我一直都在積極研究它,我可以有一個非稀疏的結賬。) – EvanED
@EvanED是的,這是我的觀點:如果你可以支持多gB *一次*(第一次讀取),那就很理想。我不知道有部分獲取的方法(在淺層克隆旁邊)。我仍然使用稀疏檢出(例如https://stackoverflow.com/a/2467629/6309) – VonC
@EvanED「我將要有一個分支或整個回購分支,只有我感興趣的子集in at al「:那麼你需要將該回購拆分爲兩個回購(其中一個是另一個的子模塊):https://stackoverflow.com/a/16728814/6309 – VonC