sme*_*eeb 14 git github git-flow
学习GitFlow和我有一些问题,我在任何我读过的文档/文章中都看不到这些问题.
在某些时候,develop
需要将分支上的代码部署到QA /暂存环境并进行严格测试.因此,使用GitFlow,您可以删除release
分支develop
,然后部署release
到所述分段环境.
首先,只是想快速澄清一些事情:第一次特定的项目/回购经历这个过程,你实际上是在分配/创建这个新的release
分支develop
,是吗?而且,在未来的其他所有时间,你只是合并 develop
到release
,是的?
那么QA测试release
staging env上的分支,看起来都很好,我们已准备好部署到prod.你呢:
release
成master
?; 要么release
到master
和再部署督促?我问,因为在前一种情况下你需要将release
分支部署到prod,然后部署到prod,然后合并到master
.这听起来还不错,但是prod和非prod环境通常并不完全相同,而且在praging服务器上激活的第二个代码在staging chokes中运行得非常好.我知道GitFlow支持修补程序分支的概念,但它们保留用于小修复.在需要回滚/撤销释放的复杂修复的情况下,我们现在将"脏代码"(由于某种原因破坏prod的代码)合并到其中master
.
在后一种情况下,可能需要数小时甚至数天(特别是如果您需要让IT/Ops参与prod部署)从您合并并放入prod释放请求开始,到prod部署实际发生的时间.在这段时间里,你有一个master
分支,上面写着"特征X,Y和Z都在生产中",但它们实际上并非如此.
我想知道GitFlow是否真的以某种方式解决了这个问题,或者两种情况下的已知解决方法是什么.
Lui*_*uis 11
我工作的项目非常混乱,决策在几分钟内就会发生变化,因此我的策略是尽可能地拖延软件配置管理决策.
特别是,合并到主人:我们只是在我们部署生产后合并为主人,我们有一个确认电子邮件,烟雾测试工作正常.通过这种方式,我们可以通过管理决策变更风险,部署中的回滚,技术问题或任何可能发生的问题来应对混乱.
一开始我们在投入生产之前合并为大师,但技术问题,回滚,管理决策在最后一分钟......给我们带来了很多问题,所以我们改变了策略,并且它在过去的3个工作正常年份.
如果最终在生产后发现了一些回归,那就是一个修补程序,必须像那样处理:)
你实际上会从开发分叉/创建这个新的发布分支,是吗?
那是正确的。第一次你唯一的选择是release
从你的主分支创建分支,这就是你将要部署的 QA/Staging,然后是生产。
并且在未来的所有其他时间,您只是将开发合并到发布,是吗?
这取决于。根据 Git Flow 的描述,release 分支是一个短暂的分支。它可以从develop
only分支出来,并合并到master
. 理论上,release
应该develop
在你的发布完成后合并回,然后再被移除。您应该合并到发布中的唯一内容是hotfix
. 这是一篇关于流程的好文章。
这因一支球队而异。我曾在完全遵循 GitFlow 描述的团队中工作,而其他人则选择release
从开发中删除并重新创建它,就好像这是第一次一样。
部署到 prod,然后将 release 合并到 master 中?;或合并发布到主然后部署到生产?
从理论上讲,master 应该始终包含生产就绪代码,而确保这一点的唯一方法是部署到生产的内容正是master 分支中的内容。也就是说,我们可能无法为您提供特别适合您团队的完美答案。
例如,我目前在一个拥有 CI/CD 管道的团队工作,这让我们别无选择,只能先合并:部署从master
. 我见过一些团队发布的版本相距太远,并且对部署release
分支并随后合并更有信心。这避免了部署在release
->master
合并期间出现的人为错误(这可能包括随着时间的推移建立的令人讨厌的冲突)。
我相信您应该选择最适合您的解决方案,因为 GitFlow 可能无法涵盖所有可能的场景和上下文。
您创建的发行分支是短暂的分支,类似于您创建的功能分支。发布完成后,删除分支。例如,我将创建一个release/0.1.0
分支,进行工作,然后合并。
部署到生产环境时,我总是从master分支中获取代码,这意味着我在部署之前首先将release分支合并到master中。
GitFlow更多地是关于前进,而不是前进。因此,为什么使用修补程序来为已确定的问题创建修补程序。
就投入生产所需的时间而言,这确实不是GitFlow的问题,而且我认为它不会在这方面提供太多帮助。无论您使用哪种分支策略,这对您来说都是一个问题。
归档时间: |
|
查看次数: |
3724 次 |
最近记录: |