git submodule 操作

Git 使用submodule 管理外链库

git clone 下载了库之后,首先 git submodule init 再 git submodule update这样就可以把下载的库的外链拿到依赖的内容,submodule 是固定conle 的commit,默认是head 执行执行```git submodule add```或对于新clone下来宿主项目执行 ```git submodule update```后,得到的submodule是处于头指针脱离状态, 在其目录中执行git branch可以看到当前没有指向任何分支。去.git/modules/xxx中查看HEAD文件,其内容为commit id而不是通常的ref。

可以在本地子模块中进行checkout改变分支指向,比如git checkout master使得子模块工作区改为master分支,并且可以在其中修改文件并提交和push。如果子模块工作区的提示改变了,宿主工作区可以看到子模块的提提交id改变了。


如果在宿主机执行了git add 和 git commit,就是修改了子模块的提交id ,并且可以进行git push 操作,但是别的机子进行pull 和 submodule update 操做后子模块还是指向固定的提交id(最新提交的一个)而不是master。因此,git的子模块就是指向固定的提交id,这个id可以改变。
分支和submodule: submodule是属于分支的,不同的分支可以设定submodule不同的提交id, check out到新分支需要执行git submodule update来更新submodule

你可能感兴趣的:(北漂-Mobvista.,git)