gpt4 book ai didi

git - 当它们可能有轻微冲突时如何在 GitHub 中提交多个 pull 请求

转载 作者:太空狗 更新时间:2023-10-29 13:23:27 24 4
gpt4 key购买 nike

我正在向项目提交两个独立的新功能作为 pull 请求。每个功能都在一个主题分支中,每个分支都来自 master 的尖端。

          /-- feature1
master ---
\-- feature2

问题是,虽然任何一个分支都可以自己干净地 merge 到 master 中,但是当第二个分支 merge 时,它会产生冲突。这并不是因为这些功能相互依赖,它们只是碰巧接触到相同的代码。

一个简单的例子:如果原始文件是一个逗号分隔的列表,并且每次提交都想向其中添加一个新项目,它可能看起来像这样:

master:
a,
b,
c

feature1:

- c
+ c,
+ d

feature2:

- c
+ c,
+ e

在一天结束时,如果两个 pull 请求都被接受,d 和 e 最终应该以任何顺序添加到列表中(因为这些功能是完全独立的,所以它们不相互依赖).但是,如果您尝试将它们都 pull 入,就会发生冲突。

处理此问题的最佳方法是什么? feature2 是否应该基于 feature1 的末尾,然后它们应该以正确的顺序 merge 到 master 中?

master ---
\--- feature1
\------ feature2

如果我这样做,feature2 的 pull 请求会只显示 feature2 提交,还是会显示所有 feature1+feature2 提交?

或者我应该在 feature1 merge 到 master 后才 rebase feature2?

最佳答案

由于这两个功能都不是建立在另一个之上的,因此您应该像最初那样从 master 分支出来。即使他们接触到一个共同的文件(微不足道)也是如此。

然后在第一个 pull 请求 (feature1) 与原始 master merge 后对第二个 pull 请求 (feature2) 进行 rebase 处理(如果先 merge feature2,则对 feature1 进行 rebase 处理)。

git fetch upstream
git rebase upstream/master feature2

在这里,我们从上游(您从中 fork 的原始来源)抓取提交,然后是 rebase our local feature branch及其 promise 。

然后修复您可能遇到的任何 merge 冲突,并将该提交推回您的分支。 feature2 的 pull 请求将更新,现在包括修复可能的 merge 冲突的提交,并使 merge 回原来的更清晰/更容易。

或者原始存储库将只获取您的 pull 请求分支和 merge them in themselves ,解决可能出现的任何冲突。

关于git - 当它们可能有轻微冲突时如何在 GitHub 中提交多个 pull 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16696528/

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