初使用git 子模块

2019-03-25  本文已影响0人  节奏lhl

添加公共的库到当前项目中

添加submodule


git submodule add 子模块项目地址

子模块添加成功后当前项目会多一个.gitmodules隐藏文件,文件内容保存submodule的引用信息,包括路径和repo地址


[submodule "VTAlertView"]

path = VTAlertView

url = https://github.com/xiaolidaodao/VTAlertView.git

子模块添加完成在主项目提交所添加内容

在子项目加入到项目的时候,其实做了这样三件事:

所以在当前项目push到remote repository的时候,只是更新了引用的commit id,那么在其他人clone项目的时候,就可以获取子项目的commit id,然后在git submodule update的时候获取子项目commit id所表示的commit

clone带有submodule的项目


git clone 主项目地址


git clone --recursive 或 git submodule update --init --recursive

当前子模块为HEAD分支,切换至master分支

因为父项目不记录子模块的修改,只记录commit id,所以clone的时候只获取到对应的commit,而不在任何分支上,但是master分支的commit id和HEAD保持一致,所以只要git checkout master,而不需要新建分支

修改submodule

两种方式修改子模块

注:子项目只要更新,父项目必须更新引用子项目的commit id

更新submodule


git submodule foreach git pull 或

cd submodule

git pull

参考

git submodule

Jenkins应用git submodule

上一篇下一篇

猜你喜欢

热点阅读