2011-09-30 110 views
1

我在Github中有一個倉庫,它在供應商文件夾中有大型二進制文件。我想刪除該文件夾,以便回購回到正常大小。從公共git倉庫中刪除舊文件夾

問題/挑戰:

  • 有7 - 非順序 - 提交有關供應商的文件夾。
  • 有數百個提交將這些提交分開。由於它們是OSS的貢獻,因此丟失這段歷史是不合適的。
  • 這是好吧如果誰分叉我的回購的人不能使用這個新的。他們都沒有新的提交。他們可以沒有問題地再次分叉。

我想聽聽有關如何繼續操作的建議。

謝謝。

+0

這是http://stackoverflow.com/questions/1216733/remove-a-directory-permanently-from-git的副本? –

回答

3

你會想看看git filter-branch,更具體地說,--tree-filter選項。例如:

git filter-branch --tree-filter "rm -r vendor/*" HEAD 
+0

我想補充一點,在git中90天內不會「正式刪除」這些東西。如果您希望回購縮小,則需要將垃圾收集的到期日期設置爲立即進行垃圾回收,然後再次將有效期設置爲90天。 –

+0

要麼'git gc --prune = now'(如果他們打開,首先清理reflogs),或者只是重新克隆repo並使用新的克隆(這會自動成爲一個新的最小回購,因爲未使用的東西不是克隆)。 – Amber

+0

我在本地倉庫試用了這個工具。但是當我做git狀態時,我看到「你的分支和'起源/主''分開了,分別有181和181個不同的提交。」 – Nerian