【问题标题】:Should I rebase with dev branch before making a pull request?在发出拉取请求之前,我应该使用 dev 分支进行 rebase 吗?
【发布时间】:2018-07-18 14:03:23
【问题描述】:

我们目前的工作流程:

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

git checkout dev

git pull --rebase(开发中)

git checkout my-feature-branch

git rebase dev

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

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

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

提前致谢

【问题讨论】:

  • 这是一个工作流程问题:最好的工作流程总是基于意见。他们都有权衡。做你作为一个团队的决定,并坚持下去。了解你正在做的事情的利弊。所有工作流程都有其起伏。

标签: git rebase pull-request


【解决方案1】:

比方说,当您在处理 feature-branch 时,新的东西被集成到 dev 分支中。所以历史可能是这样的:

1 - 2 - 3 - 5 (dev)
    \
     4 - 6 - 7 - 8 (feature-branch)

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

如果您将feature-branch 分支重新定位到dev 并在提交拉取请求之前解决潜在的冲突,

1 - 2 - 3 - 5 (dev)
             \
              4 - 6 - 7 - 8 (feature-branch)

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

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

【讨论】:

  • 完美答案谢谢你,正是我想要的。谢谢大家。
  • 如果假设远程分支上已经存在提交 7,是否需要强制推送(直到 7 rebase 未完成或 dev 未使用 3 和 4 提交)?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 1970-01-01
    • 2019-03-26
    • 2017-12-20
    • 2014-11-30
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多