【问题标题】:Can we raise two Pull request for master branch concurrently我们可以同时提出两个主分支的拉取请求吗
【发布时间】:2021-02-09 18:48:24
【问题描述】:

我对 GIT 感到困惑。 询问 - 我有从 MASTER 分支克隆的 Feature1 和 Feature2 分支。相应的更改和代码已提交并同步到 GIT BASH 中的相应分支

For Feature 1
git checkout master
git pull origin master
---resolve conflicts if any
git checkout Feature1
git merge master

为功能 1 分支提出了拉取请求 1,以将更改移动到主服务器(功能 1 ---> 主服务器) 在提出 PR 时,我是否应该等待 Pull request 1 被批准并完成,然后再为 feature 2 分支提出 Pull Request 2

For Feature 2
git checkout master
git pull origin master
---resolve conflicts if any
git checkout Feature2
git merge master

我可以同时为两个 Feature 分支提高 PR 并期望不会有合并冲突。

我的理解 - 我一直认为这会产生问题,因为我的 Feature 2 分支 PR 不会有来自 master 分支的最新提交,该提交是在 Feature 1 分支的 PR 获得批准后移动的。 请让我知道这是否会成为问题。我想知道同时提出两个 PR 的理解。我搜索了相同的查询,但没有一个给我清晰的理解。

【问题讨论】:

  • 您不能同时批准和合并两者,因此其中一个必须在另一个之后批准或合并,这可能引入冲突。如果第一个合并分支中的更改与第二个分支发生冲突,则会发生冲突。
  • 是的,感谢您的澄清。我相信同样的。在我的团队中,2 个不同的团队成员同时提出了他们的 PR。那么冲突的可能性很大。这就是为什么我一直怀疑这是否可能。这个问题是否符合 git 的限制。
  • 不应该自动仅仅因为时间问题而有很大的冲突机会,除非你有一个项目,你总是必须在相同的地方修改相同的文件.如果你这样做了,那么你应该重构这些文件,这样你就不需要这样做了。

标签: git github devops git-bash pull-request


【解决方案1】:

多个拉取请求是正常的

同时打开多个拉取请求是完全正常的,如果不可能,即使是中型项目也会陷入停顿。

在大多数情况下,合并时您甚至不会遇到任何冲突。如果 2 PR 更改相同的行,那么您将获得第二个 PR 的合并冲突。您可以修复它并推送更新的分支以更新 PR。

【讨论】:

  • 感谢您的澄清。但是,如果 PR2 没有 PR1 的更改(不是与 master 更新的),那么当 PR2 被批准时,刚刚移动到 master 分支的 PR1 更改将丢失怎么办?理解对吗?如果同时提出 2 个 PR 或 Git 处理它,是否会发生这种情况?请帮助我理解这一点..
  • 这个问题的答案取决于你如何“合并” PR。最容易解释的是将其合并到master中。在合并中,git 将合并双方的更改。只是在本地尝试一下。在一个新文件夹中初始化 git 并提交一个包含一些文本行的文件。创建两个分支并在每个分支中更改不同的行。现在将两个分支合并回master。也许再试一次,在同一行进行更改。
猜你喜欢
  • 2022-01-22
  • 2023-01-11
  • 1970-01-01
  • 2014-11-30
  • 2018-01-27
  • 2012-02-04
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多