试图理解/确定一个基本的 Git 工作流程
Posted
技术标签:
【中文标题】试图理解/确定一个基本的 Git 工作流程【英文标题】:Trying To Understand/Determine A Basic Git Workflow 【发布时间】:2019-04-23 14:04:56 【问题描述】:我一遍又一遍地阅读这个popular document 来尝试起草我自己的 git 工作流程。
我想我已经明白了,但我还是有点失落。这是我目前的理解...
我们有两个始终保持活跃的分支。
Master:在这里我将推送实际部署到我的生产服务器并供我的用户使用的代码。 开发:这将从主分支分支。它将包含我将推送到下一个版本中的所有新功能、错误修复等。我们有多个主题分支,将从开发分支分支(我认为)。一旦主题(例如错误)得到修复,我们将该分支合并回开发分支。一些例子:
主题分支 1:feature-ajaxify-shoping-cart 主题分支 2:bugfix-navbar-font-overlapping准备发布
我们一次有 1 个发布分支,将从 功能分支。 现在我们提取/合并所有功能、错误修复等 想推到下一个版本。 我们可以保留一些我们一直在开发的功能,这些功能不会在下一个版本中出现(我认为)。创建版本
一旦对发布感到满意,我们就可以将该发布分支合并到主分支中,并将提交命名为“v1.2.0”。 我们还想用“v1.2.0”标记该提交,以便我们可以轻松地回到过去并查看版本。我学到的旁注
主分支总是干净整洁,只包含发布的提交(我认为这就是为什么我们有一个单独的发布分支,对吧?)。
请让我知道我在哪里搞砸或误解了某些内容等。谢谢!
【问题讨论】:
您的解释是正确的,但看起来您只是专注于分支,尽管 git 提供了更多功能。您可以参考此答案以涵盖更多案例***.com/questions/40892485/… 【参考方案1】:你的总结是准确的:你可以找到图文并茂的in this cheatsheet。
请注意,为了与其他功能一起测试您的功能,您必须将它们合并以进行开发 (git flow feature finish MYFEATURE
)。
还有另一个工作流程(Git workflow)可以更好地推广功能(开发,然后发布)
区别在于:
使用 git 流: 多个feature
分支合并到devel
中(他们发现他们是否可以一起工作)
然后在合并回devel
(和master
)之前,从devel
(此时删除功能变得复杂)创建release
。
使用 gitworkflow:
feature
分支合并到“public
”“alpha”分支,在每次发布后重置(意思是在新版本的基础上删除/重新创建)
然后将这些相同feature
分支的子集合并到“next
”(“beta”)分支以进行集成/验收测试。在每个新版本之后,类似地在 master
之上重新创建“next
”(“beta”)分支。
然后将feature
分支的子集合并到master
,以准备下一个版本。
“public
”和“next
”(又名“devel
”)分支永远不会合并到master
。它们是“暂时的”或“短暂的”,总是被删除/重新创建。
只有feature
分支合并到生命周期分支(public
、next
、master
)。
这意味着您可以随时选择在开发生命周期的一个阶段和下一阶段之间删除feature
。
【讨论】:
很高兴听到。所以这个方法叫做'git flow'?我不太了解您发布的链接,但我会尝试理解它。我可以手动完成所有操作,而不是使用那个 git 工具,对吗? @Rich 所有详细信息都在github.com/rocketraman/gitworkflow 中。该工作流程使用常规 Git 命令,而不是像“git flow”这样的包装器。在hackernoon.com/… 中查看更多信息。 @Rich 关键段落:“在 GitFlow 中,在保持开发工作干净和隔离在主题分支上的愿望与通过合并主题分支以开发使它们可见和可测试并检查冲突。Gitworkflow 允许实现这两个目标,而不会为了另一个而牺牲一个目标。” @iBobb "Master 结束与下一个测试的不同":如果这是一个问题,请先删除分支next
(因为它是一个 transient 分支),合并您打算投入生产的功能分支(您打算最终合并到master
),重新验证您的测试,然后将这些相同的分支合并到master
。销毁next
(再次),将其重置为新的master
,然后下一个集成/验证周期重新开始。
@iBobb 是的,这就是想法。重点不是将dev
到next
或next
到master
之类的集成分支合并,而是仅将功能分支合并到所述集成分支。以上是关于试图理解/确定一个基本的 Git 工作流程的主要内容,如果未能解决你的问题,请参考以下文章