在提出拉取请求之前,我应该使用 dev 分支重新设置基础吗?

O.D*_*.D. 13 git rebase pull-request

我们目前的工作流程:

从 dev 创建一个功能分支。在开发功能并推送分支后,请执行以下操作:

git checkout dev

git pull --rebase (在开发中)

git checkout my-feature-branch

git rebase dev

解决冲突,然后执行 git push -f 或 git push (第一次)。

我的问题来自我们的一名开发团队成员:

我们是否需要按原样完成整个过程,或者我们可以直接发出拉取请求,特别是响应总是“我正在处理一个没有被任何其他开发人员共享的组件”?

提前致谢

ser*_*gej 22

比方说,当你在你feature-branchdev. 所以历史可能是这样的:

1 - 2 - 3 - 5 (dev)
    \
     4 - 6 - 7 - 8 (feature-branch)
Run Code Online (Sandbox Code Playgroud)

如果您只是创建一个拉取请求并且dev分支维护者必须合并它,他将需要处理潜在的冲突——对dev分支维护者不利。

如果您在提交拉取请求之前将feature-branch分支变基dev并解决潜在的冲突,

1 - 2 - 3 - 5 (dev)
             \
              4 - 6 - 7 - 8 (feature-branch)
Run Code Online (Sandbox Code Playgroud)

对于dev分支维护者来说,这只是一个快速而简单的快进合并。

此工作流程强制开发人员在本地解决冲突,并使集成商的工作更轻松。

  • 完美的答案谢谢你,正是我正在寻找的。谢谢你们。 (3认同)

Tim*_*sen 4

您的工作流程只是典型的变基工作流程,我希望看到它被用来将功能分支直接保留在其祖先之前,在本例中是分支devmy-feature-branch如果您想在拉取请求期间保留快速转发分支的可能性dev,那么是的,您需要执行所有这些步骤。请注意,可能需要强制推送,因为变基dev可以重写功能分支的历史记录。

至于您是否应该执行变基工作流程而不是合并或其他工作流程,这是主观的并且取决于很多因素。但是,如果变基确实最有意义,那么我同意您当前的步骤,并且没有找到简化它的方法。