将git子模块合并到主存储库中

时间:2014-01-24 09:07:44

标签: git git-submodules

好的,我们有一个包含3个子模块的存储库。现在我们要将这些子模块合并回主存储库,保留所有历史记录(好吧,使用子模块比使用更有头疼)。我们如何进行?

1 个答案:

答案 0 :(得分: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

用文字解释:你有几棵没有共同提交的树,你只需要合并这些树。这就是第二部分正在做的事情。

第一部分只是为了确保子模块的文件系统能够达到预期效果。