【问题标题】:Git: How do I sync my local and upstream repositories without duplicate PR merge commits?Git:如何在没有重复 PR 合并提交的情况下同步我的本地和上游存储库?
【发布时间】:2015-06-19 22:45:33
【问题描述】:

我需要将我自己的拉取请求功能分支合并到我本地 repo 的主分支上。但是,如果上游维护者合并了我的拉取请求,我将不得不拉入另一个合并提交。 Git 没有意识到我之前已经合并了同一个分支,因此我对同一个分支进行了 2 次合并提交。

你们如何在没有重复合并提交的情况下同步本地和上游存储库?

【问题讨论】:

  • 为什么需要合并到本地master上?为什么不向您的功能分支提出拉取请求?
  • 我确实使用功能分支进行了 PR。但是,要为我的应用程序使用代码,我不能只“git checkout”功能分支,因为其他分支也有我需要的代码。 master 分支是唯一一个合并了所有功能的分支,所以这是我需要为我的应用程序签出的分支。

标签: git merge pull-request


【解决方案1】:

如果我理解正确的话,你的状态或多或少是这样的:

(黑色 = 上游,蓝色 = 特征,绿色 = 主)

因此,当您将上游合并到 master 时,您会得到:

您需要一个本地集成分支和一个上游同步分支。 您使用本地集成分支来合并您的功能(您现在在 master 中所做的事情)。 并且您使用upstream 来跟踪上游合并。

当您提出 PR 并在上游被接受时,您会在 upstream 分支中将其作为合并接收,而您的本地集成分支(在本例中为 masterfeature 分支

之后,您可以安全地将upstream 合并到master 中,并且您会在master 中进行一次合并。或者如果你真的不想要任何合并,你可以使用rebase

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 2020-12-12
    • 2019-04-15
    • 2017-01-16
    • 2020-12-13
    • 2021-07-12
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多