在 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
(默认合并)Qa
到Master
和Dev
到Qa
。我还发现人们使用 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
的可能性
我有 3 个分支:Dev
(开发人员推送他们的代码),Qa
(完成测试)和 Master
(生产代码)。
释放时,我们merge
(默认合并)Qa
到Master
和Dev
到Qa
。我还发现人们使用 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