在 git 流发布过程中使用 git 合并 `ours` 策略是一个好习惯吗

Is it a good practice to use git merge `ours` strategy in a git flow release process

我有 3 个分支:Dev(开发人员推送他们的代码),Qa(完成测试)和 Master(生产代码)。

释放时,我们merge(默认合并)QaMasterDevQa。我还发现人们使用 rebase 而不是 merge

但是,使用 merge -s ours 怎么样?

这将确保 Master 的代码与我们刚刚测试的 Qa 的代码完全相同。我们摆脱了默认 merge 的副作用(比如 Master 的代码与 Qa 不应该保留的代码)。此外,自动化工具可以为我们完成整个发布,因为在此过程中我们不会遇到任何合并冲突。

这是个好主意吗?最佳做法是什么?

Is it a good idea?

嗯,我怀疑。 git merge -s ours 假装进行合并,而实际上它进行的是 reset。您实际上忽略了对 master 所做的所有提交。这就是我想调查的重点:

怎么可能 master 上需要一个 (non-fast-forwarding) 合并?如果 master 前进的唯一方法是从 QA 合并或进行立即合并回 QA 的提交,那么就不会有任何冲突(除非 QA 被重写)。另一方面,如果有一些对 master 的提交没有合并回 QA,则丢弃它们可能不是一个好主意,您可以使用 git merge -s ours.

编辑:提及修补程序 master

的可能性