美文网首页
初使用git 子模块

初使用git 子模块

作者: 节奏lhl | 来源:发表于2019-03-25 14:04 被阅读0次

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

    添加submodule

    
    git submodule add 子模块项目地址
    
    

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

    
    [submodule "VTAlertView"]
    
    path = VTAlertView
    
    url = https://github.com/xiaolidaodao/VTAlertView.git
    
    

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

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

    • 记录引用的子项目仓库,在.git/config中

    • 记录当前项目中子项目的目录位置,在生成的.gitmodules中

    • 记录子项目的commit id

    所以在当前项目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

    相关文章

      网友评论

          本文标题:初使用git 子模块

          本文链接:https://www.haomeiwen.com/subject/grivvqtx.html