美文网首页
git submodule

git submodule

作者: Hard模式 | 来源:发表于2018-11-28 10:55 被阅读0次

    Git子模块允许你将一个Git仓库作为另一个仓库的子目录。

    git submodule add <git-repo> [path]

    一般来讲,我们会将子模块添加到path为thirdparty子目录下的某个位置

    进行上述操作后,可以看到.gitmodules的配置信息已经得到了相应的更新:

    [submodule "thirdparty/googletest"]
        path = thirdparty/googletest
        url = https://github.com/abseil/googletest
    

    需要注意的是,当你不在子模块的目录时,git将不记录子模块的具体内容,而只是记录子模块的对应提交(HEAD/CommitSHA)

    在子模块目录下的工作和正常git一致:

    git checkout -b <branch-name>
    edit file
    git add
    git commit
    git push
    

    如果在父项目的工作需要修改子模块,记得先提交子模块的改动,再提交父项目的改动。
    否则,别人在你的两个父子提交之间拉取改动的时候,会得到父项目中指向子项目的指针已经更新,但是实际上对应子项目的改动并不在服务器上存在!

    更新子模块
    在子模块目录下,更新获得最新的头指针

    git merge origin/master

    在父目录,更新子目录的文件内容

    git submodule update

    相关文章

      网友评论

          本文标题:git submodule

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