如何防止错误通过未来的新功能传播

How to prevent a bug to spread through future new features

我们在实施 Git 作为我们的版本控制时遇到了问题。我们希望尽快实施完整的 Git Flow.

让我们想象一下这种情况(分支:开发和掌握):

但是,之后他们发现 Maria 的第一次推送有一个错误,他们无法将其推送到生产环境(Master)。所以 Bob 的代码现在 "infected" 带有 Maria 的 Bug。

如何解决甚至防止这种事情发生?

你对版本控制的看法完全错了。什么都没有 "infected",只是在 develop 上存在一个错误,然后才交付生产。错误不会 "spread through future releases",它们只是存在,直到您修复它们。

创建修复并将其合并到 develop 为 Maria 的合并创建一个 revert,并将其合并到 develop .无论哪种方式,解决方法都是简单地修复 develop 并继续。 "Bob's code" 没有变成 "infected",develop 分支只是被一个错误阻止了(希望是短暂的)。

你无法阻止这种事情。错误会出现在代码中,这是不争的事实。您只是碰巧在发布之前发现了错误,这是一件 好事 的事情,它 Git 的行为符合预期。您只需编写一个修复程序,添加一个回归测试并继续。

如果您正在关注 Git Flow,这就更不是问题了:Maria 和 Bob 的工作都会进入一个版本,在发布之前会经过一轮测试和错误修复。如果您打算将 Bob 的更改直接合并到 master 中,并且由于等待可靠的发布分支而导致它们出现问题,那么从一开始就应该将它们视为 Hotfix。