git submodule

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 使用场景 基于公司的项目会越来越多,常常需要提取一个公共的类库提供给多个项目使用,但是这个library怎么和gi...
    0xSen阅读 18,749评论 1 26
  • 开发中我们经常会遇到这样的情况:项目越来越大,一些通用的模块我们希望将他抽离出来作为单独的项目,以便其他项目也可以...
    feil0n9wan9阅读 20,646评论 0 24
  • 写在前面: 1、使用Git Submodule可能遇到的坑(http://blog.devtang.com/201...
    Funnyer阅读 6,076评论 0 0
  • 据了解,全球首个“区块链+人工智能”双技术驱动的新能源生态项目EtainPower 已顺利结束种子轮融资。获得了来...
    EtainPower阅读 386评论 0 0
  • 七律.七夕 织女隔河望神州,牛郎一笑难自收。 家家户户笑盈盈,对对鸳鸯喜上头。 世人不管中元节,君子何须故国游。 ...
    元刚梅子阅读 1,038评论 0 3

友情链接更多精彩内容