如何分支并包含未决拉取请求中的更改

How to branch and include changes in pending pull request

如何创建新分支以包含待处理的拉取请求,同时在我推送新 PR 时不产生问题?例如,我不希望第一个 PR 的更改在我合并第二个 PR 时产生冲突。

考虑从第一个功能分支分支或将第一个功能合并到第二个分支,但不确定哪个是更好的选择。

好吧,第二个 pull request 的变化取决于第一个 pull request 的变化。因此,如果(何时)您最终更改了第一个提交,那么第二个提交自然会受到影响。这就是拉取请求的全部意义所在,也是您不将代码直接推送到主仓库的原因。

话虽如此,从第一个功能分支创建您的功能分支并将其设置为上游:

git branch --set-upstream-to=[your remote]/[first feature branch]

这样,您只保留特定功能分支中唯一的、较新的提交。 运行 git status 然后将显示与其他功能分支相比的更改,而不是与主分支进行比较。

每次更改第一个功能分支时——在 PR 获得批准并实际合并之前的时间——你运行git pull --rebase将功能分支 1 的任何更改应用到功能分支二。

鉴于

  • 在 PR2 中,您不要 触摸在 PR1 上更改的文件。

PR1 和 PR2 之间绝对不可能发生合并冲突。

如果

  • PR1 也不会改变。

您的方法完全没问题,不会影响历史。

如果 PR1 发生更改并且它是 PR2 的依赖项,除了您的工作之外,您可能需要在 PR2 实现中遵守该更改(例如:依赖方法签名)。如果是这种情况,将您当前的分支 (PR2) 重新设置为 master(或 develop,PR1 已合并到的主要开发分支)分支作为基础分支将使您的历史变得更好。 :))