2010-11-23 110 views
5

我有一個Git倉庫,有很多歷史。我想讓其他人可以訪問它,但其中的一個目錄包含無法分發的專有代碼。有什麼辦法可以讓克隆版本庫(包含歷史記錄)排除該目錄嗎?克隆Git倉庫不包括子目錄

加分:我還希望能夠將對舊的主存儲庫中創建的「公共」代碼的更改合併到克隆中。

回答

1

除非您願意重寫每個提交哈希值,否則不能這樣做。如果您決定重寫存儲庫的歷史記錄以排除該目錄,則必須與作爲存儲庫貢獻者或使用者的任何人協調。

您將需要filter-branch來調整樹。該腳本需要最初創建一個存儲庫,該存儲庫是存儲庫中的子模塊。只要有變化,它就需要提交到內部存儲庫,並調整父級中的子模塊引用,並在該級別提交該模塊引用。

您現在可以發佈回購,並且沒有人能夠執行git子模塊操作,但這正是您想要的。