当前位置: 首页 > article >正文

git创建一个公共子模块用于不同的项目共享这一个子模块

引言

  • 创建公共子模块
    • 创建仓库(托管子模块的代码)
    • 创建子模块
    • 在主项目中添加子模块
    • 更新子模块和使用子模块
    • 自动化更新子模块

项目开发中,有时几个不同的工程都用到同一个头文件,这时这个头文件就可以放在一个子模块中,每次子模块的代码更新之后,其它的工程就去更新子模块,这几个工程共享这个子模块。

创建公共子模块

创建仓库(托管子模块的代码)

  1. 在代码托管平台上创建一个远程仓库,设置仓库的相关的属性(描述,访问属性,可访问成员等)。
  2. 创建好远程仓库后,可以看到远程仓库的url。git@192.168.3.128:zhangsan/File.git。

创建子模块

  1. 找到自己打算作为子模块中代码的文件,在主项目所在的目录下新建一个文件夹,将这些要共享的代码拷贝到新建的目录下。(主项目就是自己希望使用子模块的项目)
mkdir share_module
cd share_module
cp 源文件的路径  ./ #将要共享的文件拷贝到新建的子模块文件夹下
  1. 在新建的目录share_module下,初始化git.
git init
  1. 设置仓库的配置。
git config --global user.name "zhangsan"
git config --global user.email"zhangsan@163.com"
  1. 添加代码到仓库中。
git add . //添加自己的想要添加的文件就好,点代表添加当前目录下所有的文件
git commit -m "初次添加代码" //给这次添加添加描述
  1. 关联远程仓库与本地仓库。
git remote add origin git@192.168.3.128:zhangsan/File.git
  1. 推送代码到远程仓库。
git push origin 你的当前分支名

这里还没有在本地新建分支,所以使用远程分支同名的分支master,也就是git push origin master.
也可以自己使用指令查看当前所有的分支。

git branch -a #查看所有的分支,包含远程分支和本地分支,此时本地没有新建分支,只能看到远程分支及远程分支映射的本地分支
  1. 此时托管平台上创建的仓库中已经有了子模块中要共享的代码。可以去托管平台查看。

在主项目中添加子模块

这里默认已经将主项目放置在git托管平台上了,如果主项目没有放在托管平台上则需要自己去添加主项目到托管平台。步骤和前面创建子模块的代码到远程仓库一样,也可以查看git初次怎么上传代码到远程仓库中(命令行)这篇博文。

  1. 进入主项目所在的本地仓库下
    即自己主项目要添加子模块的开发分支下。
  2. 添加子模块到主项目
git submodule add git@192.168.3.128:zhangsan/File.git ./share_module/

3.初始化并更新子模块

git submodule update --init --recursive

更新子模块和使用子模块

  1. 进入子模块所在的目录
cd share_module
  1. 修改子模块中代码
  2. 提交修改的子模块中代码
git add shared-file.h 
git commit -m "Update shared file"  
git push origin master#这里的master是自己当前所在的本地分支,可使用git branch查看,带*的便是
  1. 在主项目中更新子模块
cd ..  # 回到主项目目录  
git add share_module
git commit -m "Update submodule reference"  
git push origin develop#这里的develop是自己当前所在的本地分支,可使用git branch查看,带*的便是
  1. 在其它项目中更新子模块的内容
cd 其它项目的目录  
git pull  # 更新其它主项目代码  
git submodule update --init --recursive  # 更新子模块内容

自动化更新子模块

要想只使用git pull和git submodule update来更新代码,需要配置.gitmodules文件。在 .gitmodules 文件中指定子模块的分支。

  1. 编辑.gitmodules文件。
[submodule "share_module "]  
    path = share_module    
    url = git@192.168.3.128:zhangsan/File.git
    branch = develop #子模块所在的分支
  1. 使用下面的指令来应用更改
git submodule sync

以上创建一个公共的子模块,并在多个项目中共享和更新它。每次更新子模块后,其他项目的团队成员只需运行 git pull 和 git submodule update 即可获取最新的子模块内容。


http://www.kler.cn/a/378832.html

相关文章:

  • 我们来学mysql -- 同时使用 AND 和 OR 查询错误(填坑篇)
  • CODESYS可视化星三角降压启动程序控制电气动画图
  • 3105. 最长的严格递增或递减子数组
  • aws(学习笔记第十课) 对AWS的EBS如何备份(snapshot)以及使用snapshot恢复数据,AWS实例存储
  • CSS--两列网页布局,三列布局和多行多列布局
  • unocss 添加支持使用本地 svg 预设图标,并支持更改大小
  • JWT-混淆算法
  • 鸿蒙HarmonyOS应用开发者(基础+高级)认证
  • uniapp下载文件的方案,包括H5,App方案解决办法
  • 如何使用Python WebDriver爬取ChatGPT内容(完整教程)
  • 数据结构,问题 C: 后缀表达式
  • Java NIO 【处理消息边界】
  • 基于 Spring Boot 和 Vue 的大学生入伍管理创新系统
  • CSS中display和visibility的区别
  • pnpm install安装element-plus的版本跟package.json指定的版本不一样
  • Hive SQL 和 SQL 的区别总结(持续更新中.....)
  • UV紫外相机
  • 在 C/C++ 之中为什么应该建议使用C函数库定义的基础数值类型,而不是编译默认的关键字类型?
  • Javase——正则表达式
  • C#开发webService接口
  • aws(学习笔记第九课) 使用AWS的网络存储EBS
  • Git 概述及相关命令(1)
  • 【小白学机器学习28】 统计学脉络+ 总体+ 随机抽样方法
  • 【Git】Git 版本控制与协作开发指南
  • 在VSCode中读取Markdown文件
  • 【linux-Day7】Vim的使用和简单配置