git添加子模块(submodule)
背景
有时候自己的项目需要用到别人的开源代码,例如 freertos 和 tinyusb
这个时候有两种选择
- 将开源的代码下载下来放到自己的
git中管理- 缺点:如果远端仓库更新,自己仓库的代码不会更新
- 将开源代码通过子模块(submodule)的形式加入到自己的仓库中
- 优点:自己仓库代码时刻和上游代码保持更新
子模块(submodule)添加方法
例如需要将 tinyusb 开源代码添加到自己的代码仓库中
- 进入你想将
tinyusb添加到的目录 - 在该目录下执行
上述命令执行之后会将对应的git submodule add git submodule add https://github.com/hathach/tinyusb.gitsubmodule代码下载下来。
这时在仓库的根目录会有新增一个.gitmodules文件 - 提交子模块到远程仓库
到这里git add . git commit -m "add submodule project" git pushtinyusb子模块就添加到自己的仓库了,
效果图如下:

这里点击一下蓝色字体就可以跳转到对应的仓库
子模块(submodule)同步问题
git submodule init
git submodule sync
git submodule update
项目地址
- https://github.com/tyustli/USB



![[洛谷-P1273]有线电视网(树形DP + 分组背包DP)](https://img-blog.csdnimg.cn/img_convert/cc40056100e44d8822df1d3284b9ac3b.png)








![IO多路复用--[select | poll | epoll | Reactor]](https://img-blog.csdnimg.cn/0eb85dc013b048beb35a9c3dec6e9618.png)





