monorepo与github子模块
我们的应用程序采用微服务架构,一个服务一个回购。我们正在探索是否应该建立一个单一回购协议,因为许多公司都在遵循这一做法。关于mono和many的利弊有很多讨论。如果我们想找到一个替代方案,让我们从两个选项中都有一些缺点,我们是否应该使用git子模块来提供“外观相似”的mono结构 是的,关于子模块的好坏有很多讨论,但我倾向于认为有些子模块使用错误。就像用大锤敲钉子一样,不要因为它们的名字相似而期望有任何缺点monorepo与github子模块,git,github,microservices,Git,Github,Microservices,我们的应用程序采用微服务架构,一个服务一个回购。我们正在探索是否应该建立一个单一回购协议,因为许多公司都在遵循这一做法。关于mono和many的利弊有很多讨论。如果我们想找到一个替代方案,让我们从两个选项中都有一些缺点,我们是否应该使用git子模块来提供“外观相似”的mono结构 是的,关于子模块的好坏有很多讨论,但我倾向于认为有些子模块使用错误。就像用大锤敲钉子一样,不要因为它们的名字相似而期望有任何缺点 使用它们时要考虑的几个事项: 它们之间以及超级项目之间完全隔离。 提交的超级项目中不会
使用它们时要考虑的几个事项:
- 它们之间以及超级项目之间完全隔离。 提交的超级项目中不会有详细的历史记录 在子模块中创建,只是更新它的那些
- 当您对子模块进行提交时,您需要推送它,因为您的子模块在另一个repo中。如果不这样做,则转到超级项目来更新子模块,最终将得到一个对未推送的提交的引用。这将导致更多的问题和混乱
也许有经验的人会分享,我们确实需要它。谢谢分享。是的,我们需要先推动子模块内部,然后再向上移动到父模块以推动。。。我发现的另一件事是IDE(webstorm)无法识别并自动切换到子模块级别的终端中的分支git签出,这可能会产生很大的误导…没问题。关于IDE,如果您转到设置/版本控制,您会看到两个repo的路径,还是只看到父级?我的PhpStorm似乎知道这两种情况。但是当你打开终端进入子模块,对另一个分支进行git签出,然后再次返回IDE,导航到右下角的子模块文件夹,你看到新分支签出了吗?对于我的情况,在配置VC设置后,我可以看到所有,但必须手动切换是的,当返回IDE时,我的工作树将刷新,它将开始索引,并且当前分支已正确切换。我只能在另一家分行结账。有一颗黄色的星星总是在master上,但它似乎不会影响任何东西。如果有帮助的话,我正在运行2017.2.4版。