2009-10-12 141 views
3

我目前有一個git存儲庫,我從svn前一個名稱學校導入。在這個學校倉庫裏,我有一個文件夾供我的每個課程使用。拆分git存儲庫

我似乎無法看到如何將這個存儲庫分割成每個類的存儲庫而不會丟失整個類的歷史記錄,我不希望這樣做。

建議?

回答

5

git filter-branch是要走的路。使回購的副本每個子目錄,然後在每個副本上運行這樣一行替換「myclassname」與您實際的類名:

git filter-branch --subdirectory-filter myclassname -- --all 
+2

這工作非常美麗謝謝。我把它變成了一個shell腳本,你可以在這裏看到:http://github.com/icco/git-explode – icco 2009-10-12 05:31:51

+0

不錯的一個,很高興我幫助:-) – richq 2009-10-12 14:03:28

+0

它拼寫爲「單獨」。 – 2009-10-13 07:03:05

-1

運行以下命令

git log -u <path> 

這會給你的變更(包括差異)在指定的文件夾中每個變更的列表。

從這裏開始,您可以編寫一個腳本來解析git log的輸出,並在新的存儲庫上運行每個補丁,保留更改集和作者信息。

一點點黑客,但它會工作。

+0

有一定是這樣做比一個更好的方式。我有五年的承諾... – icco 2009-10-12 04:38:47