子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。...Git的子仓库原理分析
如果不是很了解底层原理,很可能会导致使用子仓库出现云里雾里的现象,搞不清楚是父级仓库先提交,还是子仓库先提交
git submodule原理分析
我们知道Git底层大致依赖了四种对象...,构成了Git对于文件内容追踪的基础:
blob: 二进制大文件,可以通俗理解为对文件的修改
tree: 记录了blob对象和其他tree对象的修改,通俗理解为目录
commit: 提交对象,记录了本次提交的...tree对象和父类的commit对象以及我们的提交信息
tag: 我们对当前提交记录版本的对象
更加详细的内容请参考《深入理解Git》
我们此处需要依赖一个print_all_object的工具函数,它会帮助我们将...git submodule注意点
虽然使用git submodule为我们的开发带来了很多便利,但是随之而来也会导致一些比较容易犯的错误,整理出来,防止大家采坑:
当子模块有提交的时候,没有push到远程仓库