2014-11-08 92 views
0

我試圖從一個大型項目中的一個git repo(「FOO」)的rootdir中使用15個目錄。在較大的項目中將對這些文件進行更改並回到「FOO」回購。我邏輯上希望git subtree split --rejoin這些目錄到「FOO」的分支中,然後將該分支添加/拉出到較大的項目。換句話說,我想在「FOO」回購中保留1-2個目錄私有,而不是將它們添加/同步到更大的項目。覆蓋多個目錄的git子樹

不過,翻翻git的文檔和SO線程時,看來這不是git subtree split支持(見鏈接線程),除非我做每一個目錄子樹我用git filter-branch改寫歷史。 Git subtree and multiple directories

通常建議使用git filter-branch作爲解決方案,但似乎將任何同步重新打開回原始的「FOO」回購。來自git filter-branch --help重寫後的歷史記錄對於所有對象將具有不同的對象名稱,並且不會與原始分支收斂。對於「FOO」回購結構的任何更改(例如通過filter-branch將15個目錄置於新目錄下)目前是不可能的。

我堅持把每個目錄當作一個子樹嗎?在較大的repo中做15個子樹分割(要同步回「FOO」將需要大量的時間。是否有任何技巧來優化這個(例如,1次通過大回購的提交,但爲每個文件夾的提交創建一個分支)? 。

+0

一個分裂需要4分鐘時間做所有15個子樹拆分只需要不到一個小時 – 2014-11-10 17:46:23

回答