在包含多个子模块的项目中实现Git Flow的最佳方式是什么 [英] What is the best way to implement git flow with a project with many submodules

查看:11
本文介绍了在包含多个子模块的项目中实现Git Flow的最佳方式是什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们构建了一个ASP.NET核心微服务项目,并将代码组织到一个超级项目和多个Git子模块中(每个微服务都是一个子模块)。现在,我们希望开始使用Git Flow工作流。

启动Gitflow的最好方法是什么?我们是需要每个子模块有一个GIT流,还是应该在超级项目级别有一个全局GIT流?

谢谢!

推荐答案

类似readium/readium-js-viewer(使用子模块)的项目考虑使用Git Flow,并在issues 392中进行了讨论。

使用Git流将涉及将每个命令分解为它们的Git等效项,用作:

git submodule foreach —recursive 'git checkout develop'

但是(在本文档中):

但是,由于几个原因,此工作流已被证明存在一些问题。

  • git-flow工具(本质上是调用命令行git例程的bash脚本)有许多错误。
    最重要的是,如果合并或发布过程中出现任何问题,bash脚本就会静默失败--看起来像是在工作,但实际上它们并不工作,而且经常在不是这样的情况下报告成功。
  • 一般来说,Git在使用子模块方面比较脆弱。例如,如果子模块的结构更改(例如文件夹结构更改),则合并和新分支创建可能会失败,因为GIT不知道如何正确删除过时的分支片段。
    需要手动删除已丢弃的碎片。
  • 对于我们相对较小的项目(例如,与Adobe的Creative Suite、Eclipse和其他大型项目相比),Git-Flow工作流似乎有点过头了。
    发布分支工作流的一般目的是测试和合并复杂的项目。如果发现问题,可以进行修复,并将结果推后发展。
    在实践中,我们很少遇到RC分支机构严重到足以就地解决并重新合并的问题。相反,我们只是记录一个问题,并计划在下一个版本中修复它。

因此,使用完整的Git-Flow工作流--无论是工具还是工作流本身--似乎并不是最适合Readium的。
因此,我们建议Readium采用类似于Git-Flow的工作流,但进行了简化以满足我们的需要

因此,使用分支可以使用git submodule foreach —recursive,...但您可能希望使上述分支工作流尽可能简单。


或者,OP Nabil Kem添加in a comment

我最终删除了这些子模块,因为它们产生的问题多于好处。

这篇关于在包含多个子模块的项目中实现Git Flow的最佳方式是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆