关于如何处理 git 中未完成用户故事分支的建议

Suggestions on how to handle branches in git for unfinished user stories

这与尝试处理未完成的用户故事有关。一个例子:

在 sprint 1 中,有一个用户故事 #100。因此,我们创建了一个 sprint 分支 (sprint-1),然后在该分支之外创建了一个用户故事分支 (us-100)。在冲刺结束时,用户故事还没有完成。正常流程是user stories使用pull request合并到sprint分支,review后,sprint分支合并到develop(使用pull request)。然后删除 sprint 分支。由于 us-100 没有完成,它没有合并到 sprint-1 中,当 sprint-1 被删除时,我不确定 us-100 发生了什么。

我想做的是 "move" us-100 分支到另一个冲刺,例如到 sprint-2 分支。这可能吗?如何?或者有更好的方法吗?

只需将您的分支重新定位到新的共享 sprint 分支。

例如:

git checkout us-100
git fetch
git rebase origin/sprint-2
git push -f origin us-100

请注意,使用 -f (--force) 正在重写 sprint-2 分支的历史记录。 IMO 这是正确的做法,但如果还有其他人也在使用该分支,他们将需要调整,因为他们的 sprint-2 版本现在不同了。

他们可以做到:

git checkout us-100
git fetch
git rebase origin/us-100

现在,sprint-2 分支将基于您的新 sprint 分支,您可以照常进行。

您的方法是延迟代码合并并很可能将问题隐藏到最后一刻。

例如,假设您进行审查并决定继续进行代码合并。然后可能会出现合并问题,甚至可能导致需要进行一些重构。此外,这将是您第一次对合并的代码库进行 运行 回归测试。

显示 'finished' 个实际上仍在进行中的故事,确实存在给人以错误印象的风险。

至少我会建议您使用这种方法从头到每个代码分支进行定期合并。这样你就会发现潜在的合并冲突。但这并不能减轻回归测试的风险。您或许可以为每个分支执行持续集成构建作业,每晚与 head 合并并对其运行自动回归测试。