2013-07-16 198 views
2

我使用的是laravel 4框架,爲了保持最新狀態,我添加了一個指向上游的遠程指向框架回購併運行git fetch。問題在於它在本地回購中拉動了整個框架的歷史。 有什麼方法可以刪除上游歷史記錄嗎?Git刪除遠程歷史

回答

3

嗯,這是git的整點 - 每一個倉庫克隆平等。不必擔心整個歷史記錄 - git在將整個歷史存儲在git對象存儲中時非常高效(假設git gc有時會執行一次,它就是這樣)。

壓縮git對象存儲的大小(保存在.git目錄下)超過樹頂部結帳大小時,這種情況比較少見。

換句話說,通過刪除遠程歷史記錄(幾乎沒有幾個百分比),你不會節省很多。如果你煩惱中看到許多遠程分支機構的條件(但它確實不應該!),你可以簡單地刪除該遠程:

git remote rm upstream 

,你不會看到它或它的分支了。

我非常懷疑你會通過使用淺層克隆(--depth=1)來節省大量空間,但是你會看到很大的缺點 - 淺層克隆無法實現。所以,如果你想做自己的提交,不要使用淺層克隆。

+0

感謝您的見解,在我的情況下,git remote rm上游stuill留給我的歷史,我發現一個散步雖然會將它添加爲答案 – silkAdmin

1

如果您不想要整個歷史記錄,請使用git fetchgit clone的設置--depth選項。此外,如果你有興趣只有一個分支,那麼你可以克隆時使用--single-branch選項:

git clone --single-branch --branch=master --depth=1 git://...... 
+0

好的,謝謝,這是很好的知道,但我怎麼能擺脫現在的歷史? – silkAdmin

+0

只需再次克隆。 –