维护两个 Git 存储库

Maintaining two Git repositories

提问人:Saltaro 提问时间:3/28/2023 最后编辑:Saltaro 更新时间:3/28/2023 访问量:53

问:

我有一个关于在 git 中维护多个存储库的问题。

我目前有 2 个项目,分为 3 个文件夹:Landing、Admin、Stores。反过来,这两个项目又分为美国和墨西哥。所以我们有 US:1、2、3 和 MX:1、2、3

维护单个文件夹不是问题,问题是两个项目共享大部分代码(几乎是一面镜子),除了一些小的变化,如货币类型、语言等。

我的问题是,例如,我怎样才能使 MX 项目成为 US 的恒定副本,并且每次我在 US 中进行更改时,它们都可以轻松集成到 MX 中?

我现在的方式是:

  • 在美国存储库中,我有一个名为 MX 的分支。
  • 我下载了与 Master 集成的分支。
  • 我集成更改并手动验证所有内容(没有覆盖任何内容)
  • 验证完所有内容后,我将所有文件复制并粘贴到 MX 存储库文件夹中。
  • 我更新了 MX。

如您所见,这是一个乏味的过程,而且是 3 个文件夹,几乎站不住脚。

Git GitLab 和解决方案 项目 结构

评论

1赞 Jim Redmond 3/30/2023
您是否只是在两个版本之间切换硬编码价格、货币单位、输出字符串和其他特定于区域设置的内容?如果两者之间的逻辑相同,那么你可能应该探索将你的代码国际化,而不是尝试在 Git 中做一些复杂而脆弱的事情。
0赞 Saltaro 3/30/2023
是的,只有很少的变化:付款、语言、图像、文本、数据库等。我遵循公司以前的工作方式,但我觉得这有点混乱。我正在考虑制作一个主存储库,以及两个分支:US 和 MX,所以代码是一样的。但是我不知道这样做的正确方法是什么,或者是否有机会覆盖@JimRedmond
0赞 ErikMD 3/30/2023
事实上,一般来说,符合 DRY 原则的一切都是一个很好的策略。在您的案例中,为两个项目使用一个存储库(和一个分支)来共享几乎所有代码听起来很明智,并且有标准策略来处理子文件夹中的贡献或部署,通常搜索关键字 subtreemonorepo 和 continuous deployment
1赞 Jim Redmond 3/31/2023
最好的方法,至少是一开始,有一个特定于语言的文件,其中包含输出或界面中使用的所有不同字符串的适当翻译,映射到一个通用变量名称。然后,您将更新代码以引用变量,而不是硬编码的字符串。这不仅可以让你保持代码在语言之间的一致性,而且还可以使以后根据需要添加新语言变得更加容易。

答: 暂无答案