【问题标题】:What is the best practice for VCS structure project wise or platform wise?VCS 结构项目明智或平台明智的最佳实践是什么?
【发布时间】:2017-09-05 16:01:14
【问题描述】:

我最近加入了一个组织,遇到了 git repo 结构的问题。保持 git 存储库结构的最佳方法是什么:

  1. 在一个存储库中完成项目(前端(Angular、Html)、后端、Android 和 iOS 在一个存储库中)

  2. 为每个平台创建一个单独的存储库。 在早期的组织中,我们使用第二种方法为每个平台创建单独的 repo,但在当前的组织中,我们的架构工程师告诉我最好为所有平台保留一个 repo。

在 git 上有很多很棒的每个平台的单一 repo 项目示例,例如:

  1. https://github.com/firebase/firebase-js-sdk

  2. https://github.com/firebase/firebase-ios-sdk

  3. https://github.com/firebase/firebase-admin-python

  4. https://github.com/firebase/firebase-admin-java

  5. https://github.com/firebase/firebase-admin-node

但我没有找到将著名库作为多个项目的单个存储库的任何示例。

谁能解释这两种方法的确切优缺点以及最佳解决方案是什么? 如果有人可以在这里帮助我,那真的很感激,在此先感谢。

【问题讨论】:

  • 你得到了帮助你解决问题的答案吗?如果是,您可以将其标记为答案。它也将使有类似问题的其他人受益。

标签: git github version-control architecture


【解决方案1】:

Unlick Subversion,这对于单个单体项目来说很好,Git 最适合小型项目。

原因是 Git 的冲突范围是整个存储库。在推送之前,您必须更新存储库。远程更改通常可以自动合并,但如果发生冲突,您必须手动解决。保持存储库较小有助于减少合并的机会。

如果您有一个大解决方案,最好将其保存到多个存储库中。通常每个模块/DLL/Visual Studio 项目都是一个存储库。

另见专业 Git,作者 Brent Laster

【讨论】:

    【解决方案2】:

    简而言之:

    • VCS中的多个项目,如果项目相互关联,最好在同一个repo中管理。否则,您最好在单独的存储库中管理它们(作为您链接的 firebase 中的项目)。
    • 对于 VCS 中的项目,无论项目多么复杂,您都应该在单个 repo 中管理它

    根据您的情况,所有平台(前端和后端)都为同一个项目做出贡献,因此您应该在一个 repo 中管理它们。如果你在不同平台的不同repos中管理项目,会减少项目的耦合和关系,特别是当你需要对项目级别进行测试时。而对于不同的平台,你可以在不同的分支中管理它们,这是对一个项目进行版本控制的常用方式。

    这是一个由多个平台开发的项目的示例realworld

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 2014-06-26
      • 2010-10-04
      • 1970-01-01
      相关资源
      最近更新 更多