gpt4 book ai didi

git - 防止 Master Branch 领先于 dev

转载 作者:太空狗 更新时间:2023-10-29 14:28:47 24 4
gpt4 key购买 nike

我们有一个非常标准的 git 工作流程,但我对一件事感到恼火:master 领先于开发,因为我们创建的每个部署都是从 dev 到 master 的 merge 提交。

首先我们的工作流程:

  • master 分支 - 始终干净且可用于部署
  • development branch - 收集新功能/错误修复(如果有)审核通过
  • feature branch - 一个只有一项功能需要更改(它是 开发的分支
    分支机构
    )

每个成功的 pull 请求(功能 > 开发)都会创建一个 merge-commit,这很好。

但是每个部署(开发> master)也会创建一个仅存在于master中的merge-commit。所以发生的情况是,在 20 次部署之后,主分支比开发分支提前 20 次提交。

您如何处理这种行为?你是否时常 merge master > dev(除了创建一个无用的 merge 提交之外什么都不做)?

rebasing development-branch 似乎不是一个选项,因为那样每个开发人员都会丢失跟踪的远程分支。

最佳答案

您要求的是所谓的“快进” merge 。既然你提到了 pull 请求,我假设你正在使用一些东西来为你管理你的分支(GitHub、BitBucket 等),所以完成你想要的东西的确切说明可能会有所不同。


给定这个状态:

master o-o-o-o
\
development o-o-o

您的软件可能在 merge 时应用了 --no-ff 标志(这是标准行为,因为您希望在将功能 merge 到 development 时进行 merge 提交)。从命令行这相当于:

git merge --no-ff development

master o-o-o-o-------o
\ /
development o-o-o

但是,如果您想避免 merge 提交,您确实希望快进分支:

git merge --ff development(--ff 应该是不必要的,因为它是默认行为)

master/development o-o-o-o-o-o-o

注意事项:

  1. 如果这样做,您将无法查看 development 何时 merge 到 master 中。这可能不是问题(或者您可以通过其他方式解决这个问题,例如使用标签)。
  2. 如果您在 master 上确实有唯一的提交并且快进是不可能的,这仍然会创建一个 merge 提交。但是,如果无法快进(master 中的唯一提交或已经是最新的),您可以使用标志 --ff-only 来出错).

关于git - 防止 Master Branch 领先于 dev,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56752967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com