2014-01-24 119 views
2

好吧,我們有一個包含3個子模塊的存儲庫。現在我們要將這些子模塊合併回主存儲庫,保留所有的歷史記錄(當然,使用子模塊比使用有效性更令人頭疼)。我們如何繼續?將git子模塊合併到主存儲庫中

+0

可能重複[un-submodule git submodule](https://stackoverflow.com/questions/1759587/un-submodule-a-git-submodule) – Qw3ry

回答

4

比方說,你有以下的文件系統(並假設你只有一個子模塊,簡單的答案)

myRepoRoot/ 
    myMainFiles/ 
    submodule/ 

您需要做的僅僅

#Preparing the filesystems 
cd submomdule 
mkdir submodule 
git mv file1 file2 dir1 dir2 submodule 
git commit -am "Moved file" 

#Actually merging 
cd myRepoRoot 
git remote add sub url_to_submodule 
git fetch sub 
git merge sub/master 

上詞解釋:你有幾棵沒有共同提交的樹,你只需要合併這些樹。第二部分就是這樣做的。

第一部分只是確保子模塊的文件系統將是您所期望的。

+0

我修改了一下你的解決方案 - 我已經檢查所有存儲庫以分離目錄,從主存儲庫中移除子模塊,將子模塊存儲庫中的文件(同級目錄移動到主存儲庫目錄),提交的更改,在主存儲庫中添加「遠程」存儲庫,如「../submoduleA」等路徑然後從這些目錄中獲取更改併合並它們 - 無需推送到遠程存儲庫。 – Wojtek

相關問題