首先解释一下什么是子模块:
小明有一个库是A库,这时候小红有一个库为B库。小明要增加库里面的东西,但是他又不想维护,正巧小红的库里有这个东西。小明就直接借用过来,把它当作自己的子模块。这时候小红的库要更新,她就问小明要不要更新这个东西,小明有权利选择更新与不更新。
这就是子模块的说明
另外,子模块可以手动添加,也可以克隆的时候初始化
git中有关子模块的命令:
1.如果克隆库的时候要初始化子模块,请加上 --recursive 参数,如:
git clone --recursive git@github.com:rbind/yihui.git
2.如果已经克隆了主库但没初始化子模块,则用:
git submodule update --init --recursive
3.如果已经克隆并初始化子模块,而需要从子模块的源更新这个子模块,则:
git submodule update --recursive --remote
更新之后主库的 git 差异中会显示新的 SHA 码,把这个差异选中提交即可。
如果要向一个库中添加一个新的子模块,可以用 git submodule add,例如把Github 账户下的一个库添加到另一库文件夹中:
git submodule add A账户(源) B账户(目标)