git submodule建立了主模块和子模块的依赖关系:子模块路径、子模块的远程仓库、子模块的版本号。
git submodule add https://github.com/DPDK/dpdk.git
该命令会将dpdk作为项目的一个子模块,在.git/config和.gitmodules文件中添加dpdk的项目信息。
git submodule init [path]
该命令会将.gitmodule文件中路径为path的子模块初始化,写入.git/config文件。如果不加path,则初始化所有子模块。
git submodule deinit [path] [--all] [--force]
该命令将.gitmodules中路径为path的子模块卸载,即将子模块从.git/config中删除。path和--all二选其一,--all是将.gitmodule中的所有的子模块从.git/config中删除。--force为强制删除,即使暂存区还有保存的内容。
git submodule status [path]
查看所有path的子模块的状态。如果不加path,则查看所有的子模块的状态。
git submodule update [path]
签出路径为path的子模块的内容。如果不加path,则签出所有的子模块。
git submodule foreach “git pull”
对每个子模块执行git pull命令。