简介
Git 通过子模块来解决复用模块的问题。 submodule允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。而subtree可以将子模块合并到主模块由主模块完全管理。
git subModule
Git地址:https://www.git-scm.com/docs/git-submodule
1、拉取子模块仓库
- git submodule add <repository_url> <submodule_path>
repository_url:克隆子模块的Url地址:ssh/http的都可以,默认拉取master分支
submodule_path: 位于主模块的那个目录位置,默认和src同级,
执行add指令后,主要是两个步骤:
- 会拉取配置git仓库的默认分支和merged状态的最新commit,并克隆在主模块的指定目录中,(为了保证子模块的可追述性和稳定性,git默认拉取远程仓库的merge状态下最新的commit,不支持直接配置commit hash来获取指定提交,可以在主模块手动chekout到指定commit)
- 添加引用,会将克隆基于的commit hash、URL、Branch等配置信息记录在主模块的.gitmodule文件(新建)中以及主模块的索引.git文件夹中记录当前子模块的 commit hash。
.gitmodule文件:
.gi