使用git submoudle 开发管理项目

创建公用仓库

创建一个仓库esd_esp32-c3_modules作为公用模块,同时也为项目的子模块,https://git.com/xxxxxt_embedded/esd_esp32-c3_modules

以下为middleware、aws-iot和esp-idf共同的公用仓库,middleware为我司代码,sdk中为esp开源源码,分支为master,同时因为sdk的esp-idf和esp-aws-iot也是作为公用仓库esd_esp32-c3_modules的子模块,所以需要先添加这两个git仓库到本仓库中

$ git submodule add https://github.com/espressif/esp-aws-iot.git
$ git submodule add https://github.com/espressif/esp-idf.git

 

 

 

 

  Clone完成之后,项目中多出了一个.gitmodules的文件,里面内容为esp的git url链接,文件该配置文件保存了项目URL与已经拉取的本地目录之间的映射,需要保持这个链接的权限被使用此模块的人拥有(sdk中的权限不需要管理,但esd_esp32-c3_modules仓库的权限需要我们管理)。

添加公用仓库

创建一个esp32c3仓库,作为公共框架,也就是具体项目的代码,也叫父项目

https://gitee.com/xxxxxx/esp32c3.git

主分支为master,此为公共框架同步公共功能或者修改公共bug的master分支,此分支指定技术负责人负责维护管理,任何的分支合并、同步、bug修改、推送只能有负责人的记录,这是为了便于管理,且保证master的head为正确的方向。

以下为项目开发成员需要用到的:

需要开发具体项目从master分支切出一个项目分支出去开发,项目分支技术负责人需要随时保持主分支的修改同步到项目分支,维持最新改动。

因为modules仓库中也包含了esp的仓库,所以我们clone mudules时如果使用git clone https://gitee.com/xxxxxx/esp32c3.git

会发现只有middleware,但是sdk中并没有文件

所以必须运行两个命令:git submodule init用来初始化本地配置文件,而git submodule update则从该项目中抓取所有数据并检出父项目中列出的合适的提交。

不过还有更简单一点的方式。如果给git clone指令传递--recurse-submodules选项,它会自动初始化并存储更新中的每一个子模块,包括可能的指令存在子模块。git clone --recurse-submodules https://gitee.com/xxxxxx/esp32c3.git

如果你已经克隆了项目但忘记了--recurse-submodules,那么可以运行git submodule update --init 将git submodule init和git submodule update合并成一步git submodule update --init --recursive。

项目分支成员请不要推送代码到子模块中,如需要更新最新mudules代码请进入esd_esp32-c3_modules文件夹中使用git submodules update同步最新代码即可

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值