Git拉取请求 - 冲突

3

我在我的本地分支 branch-1 上工作,我的同事在他的本地分支 branch-2 上工作。

他已经提交并推送了分支到他的 origin/develop,并创建了一个向 upstream/develop 的拉取请求。所以现在正在等待其他人审查和批准拉取请求。

问题在于,在我的本地分支中,我需要编辑同一个文件,这个文件也是我同事在编辑的。因此,我的分支和他的分支将包含具有不同代码的相同文件。如果他的分支已经在 upstream 中,那么我可以将其合并到我的分支中,并在本地解决冲突。

然而现在它正在等待审核的拉取请求状态中,我没有时间等待,我需要创建我的拉取请求。

冲突何时及如何解决,因为现在存在具有冲突的文件的拉取请求,git 是否会识别它?由于这些分支尚未合并到 upstream 中。


2
这取决于哪个拉取请求会先被合并。如果您的拉取请求先被合并,这将导致您同事的拉取请求中出现合并冲突,他需要在合并之前解决它。如果他的请求先被合并,那么您需要解决冲突。 - Alexandra Petrova
1
如果你真的是指Github pull request,请确保在问题中包含github标签。如果你指的是其他的pull request工作流程样式,那么应该更加详细地解释,否则答案可能不适用于任何特定情况。 - Mikko Rantalainen
2个回答

4
无论哪个分支先合并,都会有一个必须解决的合并冲突。如果您的分支先被合并,另一个分支将不得不解决冲突。如果他们的分支已被合并,您的分支将产生冲突。
Pull Request(PR)页面将显示冲突并阻止合并。

我明白了,那么在其中一个分支合并之前不会有冲突。问题是,如果同事的分支先被合并,我需要去检查我的PR,然后冲突信息已经存在,我可以解决它,还是评审人员需要审核PR并解决我的冲突? - Darksymphony
1
消息会出现。如果你使用 git merge upstream development 将上游开发分支合并到自己的分支中,终端会弹出一个消息,提示存在合并冲突。修复文件,然后再次添加、提交和推送,PR 中的消息就会清除。 - Ollie in PGH

1
另一个答案是正确的,但我想再添加一种可能的行动方案。
如果您的两个独立功能需要遵循(出于业务/架构相关原因)合并顺序,其中 branch-1/feature-1 必须在 branch-2/feature-2 之前,并且同时,您需要为您的功能创建 PR,则需要将您的分支在同事的分支之上进行 rebase 并以这种方式创建 PR。
一旦 branch-1 被合并,然后将 branch-2 在最新的 upstream/develop 上进行 rebase。这将强制您解决冲突并相应地更新 PR。

谢谢,对我们来说顺序并不重要,我们只是在同一时间内共同编辑了同一个文件。 - Darksymphony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接