使用前提:
一个大项目里面需要使用第三方的组件, 这个组件是由别人去更新维护的,并且大项目自身完全不需要修改该组件的代码,只有同步更新的需求。
如果你需要对该组件修改代码,又没有push的权限,这时并不适合使用submodule,因为不能push,在别的地方就无法获取更新。
好处:
可以跟踪 submodule 仓库的变化并且可以一键更新而不是手动更新代码.
我感觉好处也不是很明显。
使用方法
https://juejin.im/entry/59a0046b518825243d1f05be
删除子模块
Git 中删除子模块略微麻烦一些,因为目前还没有 git submodule rm 这样的命令行,我们要做很多工作才能删得干净:
$ git submodule deinit themes/hugo-nuo
$ vim .gitmodules # 移除要删除的子模块
$ git add .gitmodules
$ git rm --cached themes/hugo-nuo
$ rm -rf .git/modules/themes/hugo-nuo
$ rm -rf themes/hugo-nuo
$ git commit -m "Remove submodule themes/hugo-nuo"
总结
我认为submodule 并没有很大的好处,相反引入了管理上的复杂度。