news 2026/10/15 7:48:16

我有两个程序,它们在不同的项目中,但是它们复用了一部分头文件,它们在两个不同的git仓库中,有什么好的办法可以让它们复用吗?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
我有两个程序,它们在不同的项目中,但是它们复用了一部分头文件,它们在两个不同的git仓库中,有什么好的办法可以让它们复用吗?

为什么提到这个点,因为我修改程序a中的头文件,其实程序b中相关的头文件也需要同步修改,但是它们在两个仓库中,所以,容易出现疏漏

跨仓库共享头文件的方案

你遇到的问题本质上是代码复用与同步的问题,而且是在两个独立 Git 仓库之间。下面按推荐程度从高到低给出几种方案。

我的一个想法:

使用共同的头文件:然后目录名称也都一样,可以手动对比两个仓库中头文件的差异。


方案一:抽出公共库(最推荐)

把共享的头文件抽成一个独立的仓库,作为第三方依赖引入。

common-headers/ (独立 git 仓库) ├── include/ │ ├── foo.h │ └── bar.h └── CMakeLists.txt project-a/ (git 仓库 A) project-b/ (git 仓库 B)

有待进一步思考和实践

方案二:Monorepo(如果条件允许)

把 A、B 和公共头文件放到同一个仓库里:

monorepo/ ├── common/include/ ├── project-a/ └── project-b/
  • 优点:改一处,两边天然同步;重构、搜索、CI 都简单

  • 缺点:仓库变大,权限粒度粗,迁移成本高

  • 适用:A、B 本来就是同一团队/同一产品线

方案三:Git Subtree(不想用 submodule 的折中)

git subtree add --prefix=third_party/common-headers \ git@xxx/common-headers.git main --squash
  • 优点:公共代码直接以普通文件形式存在仓库里,clone 的人无感知

  • 缺点:同步需要手动git subtree pull/push,比 submodule 更"重"

方案四:自动化检测(作为兜底)

无论用哪种方案,都建议加一道CI 防线,防止两边漂移:

  1. 哈希校验:在 A、B 的 CI 里计算公共头文件的 hash,与"官方版本"比对,不一致就报警。

  2. 定时同步检查:CI定时任务 diff 两边公共头文件,有差异发通知。

  3. 强制走公共库:如果头文件已经在公共库,直接在 A、B 里删除本地副本,只允许从公共库引入——从物理上杜绝"两份拷贝"。

第 3 点是最根本的:只要还存在两份拷贝,就一定会漂移。

待思考和实践。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 7:47:58

上网家长控制软件工程拆解:DNS过滤、SNI嗅探与eBPF高性能识别

简介:这是一份面向家长与家庭教育场景的上网控制软件源码资源,用于帮助父母管理孩子的网络访问行为,解决网址过滤、上网时长限制与设备管控等实际问题,适合具备一定C#基础的开发者学习或二次开发。压缩包共40个文件,约…

作者头像 李华
网站建设 2026/10/15 7:47:40

华为云ModelArts考证实战:从OBS数据准备到模型部署全流程精讲

我在带学员准备华为云AI认证、或者帮朋友从零开始接触ModelArts的时候,发现一个特别普遍的现象:大家算法基础都不差,PyTorch、TensorFlow也都写过,但一打开ModelArts控制台就懵了——左边那一排菜单到底该点哪个?自动学…

作者头像 李华
网站建设 2026/10/15 7:47:14

AI视频去塑料感:五层导演思维提示词方法论

1. 为什么AI生成的视频总像“会动的塑料”?——导演思维才是破局关键你有没有试过用Sora、Pika、Runway或者国内几款主流AI视频工具,输入一段精心打磨的提示词,结果生成的画面人物动作僵硬、光影漂浮、景深失真,连最基础的“走路”…

作者头像 李华
网站建设 2026/10/15 7:47:14

Flink on YARN实操指南:从ACCEPTED到RUNNING的完整排障路径

1. 这不是“又一篇Flink教程”,而是你在YARN集群上真正跑通第一个Flink任务的实操手记你点开这篇内容,大概率不是为了听“Flink是啥”“流处理有多牛”这类泛泛而谈。你手里可能刚配好一套Hadoop集群,YARN ResourceManager正在跑着&#xff0…

作者头像 李华
网站建设 2026/10/15 7:47:13

ChatGPT研究框架PPT:五层结构拆解,让80页每页都有决策价值

简介:一份80页的ChatGPT研究框架PPT,立足生成式AI迎来拐点的关键时点,系统梳理ChatGPT的技术演进、产业生态与商业化路径,适合技术决策者、AI从业者、产品经理及关注AIGC落地的投资者快速建立宏观认知。内容以市场、技术、行业、商…

作者头像 李华
网站建设 2026/10/15 7:47:11

YOLOv8番茄叶片病害检测实战:从数据集构建到边缘部署

1. 为什么番茄叶片检测需要一份专门的数据集做农业视觉项目最头疼的往往不是模型选型,而是数据本身。我之前接过几个智慧农业相关的巡检需求,发现大家都在问YOLOv8怎么调参、怎么部署,但真正把项目卡死的,是找不到一份贴合田间真实…

作者头像 李华