1.为什么要使用submodule
为了把详情、大模型、大V,(也许还有后续项目)公共的代码抽离出来,单独放到一个git仓库里面,再在详情、大模型、大V里面分别引入这个子仓库,以后只需要维护一份代码
2.为什么不使用subtree
正是因为开发人员对subtree文件夹是无感的,导致多人修改时会造成代码冲突。总之,在“易于维护”和“易于使用”的取舍中选取了submodule的易于维护。
3.怎么使用submodule
(1)创建者:
在主项目加入submodule,
git submodule add https://10.10.10.142/xxx.git [submodule]
最后一个可选,是自定义文件夹的名字,如果不写就是子仓库的名字
上一条命令后,主项目会多出一个文件夹submodule ,和一个.gitmodules文件,然后push到主仓库的远程仓库。submodule目录下的文件不会提交上去。只会把映射关系提交上去。
(2)别的开发者:
在已有的开发目录下,运行以下代码,即可拉取到submodule文件夹。
git submodule init
git submodule update
(3)修改submodule代码。
所有人都可以在主项目中修改submodule的代码,然后需要分仓库提交。这里就不写命令了。因为vscode的可视化git已经分的很清楚了。
4.解决submodule索引冲突
几乎所有问题都可以通过删除再重新添加来解决,哈哈
git rm -rf [submodule]
git submodule add --force https://10.10.10.142/xxx.git [submodule]