git submodule的使用
- 使用场景
当两个不同的项目共用同一套逻辑,这时我们需要使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。这时可以通过git子模块来解决这个问题. - 例子
pc端: 主要用于配置选项来拼装一个完整的调查问卷系统(包含单个问卷的预览)
mobile端: 显示问卷以及问卷的作答
子模块项目: 需要将每个类型的题目分装成组件,供pc端以及mobile端共同使用 - 使用
- 添加子模块
cd workspace
git submodule add git@github.com:XXX/research-study.git src/template
git status
git add .
git commit -m 'add submodule'
git push origin dev
- 克隆包含子模块的项目
git clone --recurse-submodules <main_project_url>
- 初始化子模块
git submodule init
- 更新子模块代码
git submodule update
子模块提交代码步骤:
- 提交子模块代码
cd src/template/
git add .
git commit -m 'XXX'
git push origin dev
- 将主模块与子模块相关联的commit id更新到远程
git status
modified: src/template (new commits, modified content)
git diff src/template
git add src/template
git commit -m 'update submodule commit id'
git push origin dev
- 当子项目有更新时,需要在主项目执行
git submodule update
来更新子模块代码