git submodule 使用
使用背景
当我们在团队协作项目开发时经常会碰到这种情况:当你在一个 Git 项目上开发时,你需要在该项目中使用另外一个项目代码。这时就会出现这种问题:你想将两个项目单独处理但是又需要在其中一个中使用另外一个。
如场景:如在我们开发中有些内服服务之间的通信我们通常会使用 gRPC 来作为通信框架, gRPC 是一个高性能、通用的开源 RPC 框架,给予 ProtoBuf(Protocol Buffers)序列化协议 google 开源,且支持多种开发语言。
在服务端基于 proto 文件,服务奇实现声明服务的方法,并运行 gRPC 服务器开处理客户端调用,gRPC 基础结构解码传入的请求,执行服务方法,并对服务响应进行编码。
在客户端,基于 proto 文件,客户端具有一个本地对象,该对象实现于服务相同的方法。
这时就会出现 proto 文件需要分别在多个项目中进行公用,为避免手动 copy 同步这些文件和版本控制,我们引入 git submodule 来帮助我们管理这些公用的 proto 文件。
git submodule
Git 通过子模块来解决以上场景问题,子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。
git submodule 的使用
添加子模块 git submodule add 项目地址