【发布时间】:2022-01-08 00:35:40
【问题描述】:
我在这里看到了很多类似的问题,但没有一个回答我们的具体问题。我的问题实际上是关于合并策略的,但我必须先描述我们的 git 流程。 我已经阅读了很多关于理想 Git 工作流的最佳实践,但我发现没有一个东西完全适合我们的需求。所以我们可能使用了一种不理想的方法。
流程如下:
我们有一个 master 分支,与生产环境保持一致。我们有一个可发布分支,用于在预生产环境中使用真实数据测试发布包。我们有一个 stable 分支,用于在稳定的环境中进行测试。当我们开始开发新功能时,我们会从 master 创建一个 feature 分支。功能完成后,我们通过 pull pequest 将其合并到 stable。这是问题所在;许多功能要么在测试完成后被取消,要么必须等待未来的发布,所以我们必须从 master 分支出来,因为我们不希望这些功能出现在我们的新分支中。出于这个原因,我们也不能将 stable 与 releasable 合并。因此,如果该功能已准备好继续运行,我们将通过另一个拉取请求将 feature 分支合并到 releasable。现在,由于合并提交,stable 和 releasable 之间存在不同的提交。包准备好部署后,我们将 releasable 与 master 合并。我的问题来了;当我们从 master 创建一个新的 feature 分支以开始处理新功能时,它与 stable 的提交历史略有不同。由于这种差异,有时所有文件更改都会显示在 feature 分支和 stable 之间的差异中,即使它们的内容相同。
我们正在使用 Bitbucket。我已经考虑在拉取请求中使用 -ff 而不是 --no--ff ,但我也不想丢失合并提交。我也考虑过在 Bitbucket 中使用 Rebase, merge (rebase + merge --no-ff) 合并策略,但我不确定它是否能解决我们没有干净的 pull request 的问题。 p>
总而言之,我需要对 stable 有干净的拉取请求,只需要在该 feature 分支中完成更改,而不必牺牲太多。
任何帮助将不胜感激。
【问题讨论】:
-
欢迎来到 SO!标题中带有“最佳实践”字样的任何问题都有过于基于意见的风险,因为“最佳”是如此主观。但我认为你的问题在这里经过深思熟虑和相关。我想我们可以重新命名标题,只是为了避免将其关闭为基于意见的诱惑。
-
我尝试重新命名标题。
标签: git merge bitbucket branch workflow