version-control - 您将如何使用它们共有的文件夹/文件更新两个略有不同的存储库?
问题描述
基本上,我有两个独立的存储库。它们都在运行 FeathersJS,并且略有不同。我想知道如果更新了一个存储库中的一项服务,是否有一种方法可以更新两个存储库,如果该服务与两个存储库共享。谢谢!
解决方案
选项一:Git
您没有指定您正在使用的版本控制系统,但我假设它是 Git,因为它是迄今为止最流行的。
使用 Git 时,有一种方法可以将存储库“嵌入”到另一个存储库中,这样它们就可以像代码直接保存在父级中一样使用,但实际上是在它自己的版本控制之下。这被称为git 子模块,虽然它是一个很好的解决方案,但它也非常复杂,可能对你想要的东西来说太过分了。
基本上,你会从这样的结构开始:
| - repo1
| - shared file
| - repo2
| - shared file
对此:
| - repo1
| - git submodule: repo3
| - repo2
| - git submodule: repo3
| - repo3
| - shared code
选项二:NPM
由于您指定使用 Javascript,您还可以使用 Javascript 包管理器;新PM。NPM 允许您“打包”代码,然后将其导入其他项目。
NPM 远比 git 子模块更受欢迎,如果您打算使用现代 JS,学习如何使用它将是一项宝贵的技能。
在这种情况下,您会将共享代码移动到新的存储库(就像上面的 Git 子模块一样),然后将其打包并发布。
然后,您可以将此打包的代码导入到您现有的两个存储库中。
NPM 要求您安装 NodeJS,并且您有一个构建过程来导入 NPM 包并以浏览器可以处理的方式打包所有内容。
查看NPM 入门指南了解更多信息。
随时在评论中提出任何问题
推荐阅读
- android - 如何使用 html 读取存储在内部共享存储中 Android 应用程序文件夹中的图像?
- javascript - 如何检测动态变化的输入
- python - 如何为 xgboost.train 设置评估指标?
- google-chrome-devtools - 远程设备面板发生了什么?
- .net - 如何将我从 SignalR 收到的值传递给 Angular 中的数组?
- swift - Swift 编译器错误:无法将类型“()”的值转换为指定类型“字符串”
- css - 如何让自定义选择浮动过滤器成为 ag-grid 角度中列的全宽
- c# - 正确处理泛型方法中的初始化
- vue.js - 在 Vue JS 中,如何使我的 APIService.js 类对组件全局可用,而不需要单独的组件导入它?
- apache-kafka - 为什么多个 Kafka 消费者在分组时以不同的速度消费,而不是没有?