使用Git子模块开发时无意中发现可以在主仓库的子仓库路径中提交代码

 

之前我们使用子模块的时候,都是在主仓库中修改主仓库的代码,子仓库修改子仓库的代码。然后子仓库有需要修改的代码都是在子仓库对应的代码中修改,然后主仓库通过git submodule update来更新子仓库的代码并且提交。

 

先把目前的代码结构图画一下吧

有次我直接在主仓库的子仓库路径下面修改了内容(左侧MainProject路径下的submoduleA路径),然后提交到远程了git pull origin master(这里的远程是指子仓库的远程,master也是说的是子仓库的master分支)。我以为我操作错了,然后我在子仓库(右侧submoduleA仓库的路径)里git pull --rebase发现更新到了上次的修改了。然后我就查了一些资料,然后发现我的操作没有错误,是正确的。

也就是说submodule可以直接在子仓库中修改,也可以在主仓库中修改。两者修改的效果是一样的。

参考资料中掘金上的文章 提交子模块修改 一节中提到过这种用法:

 

参考资料:

https://juejin.im/entry/59a0046b518825243d1f05be

https://zhuanlan.zhihu.com/p/97761640

https://git-scm.com/book/en/v2/Git-Tools-Submodules  ==》中文翻译  https://git-scm.com/book/zh/v2/Git-工具-子模块

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值