好吧,我们有一个包含3个子模块的存储库。现在我们要将这些子模块合并回主存储库,保留所有的历史记录(当然,使用子模块比使用有效性更令人头疼)。我们如何继续?将git子模块合并到主存储库中
2
A
回答
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
相关问题
- 1. Git:从现有的存储库中创建Git子模块并将父级更改反映到子存储库
- 2. Git:将子模块合并到主模块中,pull将不会覆盖文件
- 3. 将带子模块的Git存储库导入Subversion存储库
- 4. 将git子模块添加到存储库的根目录中?
- 5. 如何强制git子模块存在并在主存储库中提交?
- 6. Git:合并和子模块
- 7. 将CVS库中的更改合并到GIT存储库中
- 8. 将Git存储库与远程Git的子目录合并
- 9. Git合并时切换到子模块
- 10. 将子模块的子目录拆分到单独的git存储库中
- 11. Git:如何添加远程,合并到主存储库的子文件夹中?
- 12. 如何将git存储库合并到另一个存储库的分支中
- 13. 将具有子模块的git存储库转换为Mercurial?
- 14. 是否有可能将Subversion存储库作为Git子模块?
- 15. 合并两个Git存储库并保留主记录
- 16. Git子模块或子存储库或远程?
- 17. git存储库中的依赖管理(使用子模块)
- 18. Git:不存储子模块的历史
- 19. 如何将新代码合并到现有的git存储库?
- 20. 将git修订合并到mercurial存储库的最佳方法?
- 21. git子模块:哪个存储库应该被用作'子模块'?
- 22. Git post-receive存储库的钩子并找出哪个子模块被推入
- 23. 在子目录中合并git存储库
- 24. 在Git中,我该如何从存储库中获取并获取在该存储库的子模块子repo中提交的所有子模块更改集?
- 25. git合并不同的存储库?
- 26. 交叉存储库分支合并git
- 27. Git:合并多个存储库
- 28. 如何合并2个git存储库?
- 29. 合并2相同的存储库GIT
- 30. git合并已清理的存储库
可能重复[un-submodule git submodule](https://stackoverflow.com/questions/1759587/un-submodule-a-git-submodule) – Qw3ry