GIT 工作流程复杂

GIT workflow complicated

管理 git 非常困难。 我的问题:

假设我有一个项目,并且有名为“master”和“develop”的分支 并说 Mary 在名为“feature-payment”的功能分支上工作(此分支是从 master 创建的), mary 完成“feature-payment”分支的工作,然后合并并推送到 develop 分支。

然后 john 在他的本地拉取 develop 分支。然后他想做一些 css 部分。由于他没有功能分支,因此他必须在 develop 分支上工作。然后他进行更改并完成样式并推送开发分支。

当功能准备好上线时,mary 将她的分支合并到 master,但 john 无法合并 developmaster,因为 develop 分支上有多个功能没有上线。 在这种情况下,伙计们应该怎么做?? 请帮助指导我进行分支工作流程。这个问题每次都会发生在我身上。 :(

您可以在不合并整个分支的情况下合并分支中的特定提交(参见此处:How to merge a specific commit in Git

然而,更合适的解决方案是在代码被审查后从功能分支合并到主分支。你的 develop 分支的目的在这种情况下令人困惑,因为它似乎有一些变化既可以用于生产,也可以没有。在我看来,您的问题似乎可以通过在对更改进行充分审查后将功能分支合并到 master 来解决,而不是合并到 "middle" 开发分支。

  1. 分支不需要任何费用,John没有理由直接在develop中开发,他可以创建自己的分支。

  2. 我认为您遇到的一般问题是您有一些正在开发中的东西不想发布。仅将下次应该发布的内容合并到开发中。如果需要,将其他功能保留在其分支中。

  3. 正如您现在遇到的问题:检查 git cherry-pick 以仅将单个提交合并到 master。

在当前情况下,我会通过从 master 创建另一个分支(发布)并使用 git cherry-pick 来选择您需要的提交来处理它。

供将来使用 git 由 atlassian 设计的工作流程 https://www.atlassian.com/pt/git/workflows#!workflow-gitflow

如果你有简单的场景,那么发布分支并不是每个版本都必须的

并强制 john 使用功能分支 :)