git嵌套的好处
1.可以多个人同时完成一个项目,每人完成项目不同的部分
2.可以将一段代码独立出来多出复用,同时可以对这一个功能单独进行维护(如hexo的主题)
git嵌套方法
1.简单易理解,不推荐的
直接在对应的位置git clone
缺点是在其他位置clone的时候要查找各个git的地址分别git
2.submodule,推荐
方法:
先单独创建各个仓库,push到github等,然后通过git submodule add添加到指定位置
( 这种方法不会引起什么混乱,子模块都是通过submodule添加的。缺点是创建了太多独立文件夹。)
另一种方法是把整个结构在初始好,如各自加上readme文件,由低级到上级逐个git push,最后删除子仓库通过git submodule add添加。
如果子模块不多,第一种方法还好些。并且很多项目里使用的子模块并不多,比如有git仓库里只用了一个。
注意:主仓库内的子仓库是有对应版本的,在github可以清楚看到,所以子仓库更新后父仓库也是要commit的,如果此时不commit反而pull会把子仓库更新的版本覆盖掉的。
多数情况下多人合作还是各自更新,然后merge的,较少考虑使用子仓库,如果做的内容比较独立,我想子仓库是更好更清晰的选择。
有多个相同子模块也是也各自更新的,在github里可以看到,同一个模块,在一个仓库里存在的版本并不同
在子仓库拉去的方法:
1 | git pull origin HEAD:master |
因为他的状态常常不是最前端,需要指定位置才行。其他地方的拉去也尽量采用git pull origin,以规范操作方式。