This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
子模块更新说明
本文介绍子模块的独立开发模式及推荐工作流程。
工作流程图
子模块独立开发的好处
各模块可以独立迭代,不影响其他模块
子模块的 PR 不会触发主仓库不必要的构建
团队可以并行开发多个功能
推荐做法
场景
操作位置
修改 modules/chassis 代码
在 modules/chassis 目录内创建分支、提 PR
修改 modules/gimbal 代码
在 modules/gimbal 目录内创建分支、提 PR
修改主仓库配置/文档
在主仓库创建分支、提 PR
更新子模块指针(仅大版本)
在主仓库创建分支、提 PR
常见问题
Q: 克隆时提示 Permission denied (publickey)?
检查:
公钥是否正确添加到 Gitea
私钥文件是否存在且权限正确(chmod 600 ~/.ssh/id_ed25519)
SSH 代理是否加载了私钥
Q: 子模块目录是空的?
使用了 git clone 但没有加 --recursive,或子模块未初始化。运行:
Q: 如何查看子模块的远程地址?
Q: 能否在主仓库目录内直接操作子模块?
可以,使用 git -C 语法:
这与先 cd 再执行效果相同。
Q: 推送代码时需要同时推送主仓库和子模块吗?
不需要。子模块和主仓库是独立的仓库 ,各自有独立的提交历史和分支体系。
在子模块中开发 → 在子模块仓库提 PR → 合并到子模块的 main
在主仓库修改配置文件/文档 → 在主仓库提 PR → 合并到主仓库的 main
只有当你确实需要将子模块的指针更新同步给其他成员时 ,才需要更新并推送主仓库(如第 4 节所述的大版本场景)。