【问题标题】:Merge pull request into different branch将拉取请求合并到不同的分支
【发布时间】:2016-06-20 05:36:59
【问题描述】:

我现在正在维护一个遗留的 GitHub 存储库,并且有很多废弃的 PR 进入旧分支。例如,我现在在 v3.5 分支工作,PR 是针对 3.3 和更早版本的。

如果它们以旧分支为目标,我如何有效地将它们合并到我的新分支中?

如果它很重要,我相信不会有冲突。

我发现了一些关于类似事情的老问题,但我找不到任何关于如何通过 GitHub 进行操作的信息。那上面还没有功能吗?我必须通过 git 手动完成吗?

【问题讨论】:

  • 分支是如何创建的?都是从master分支的?或者是3.5。从3.3分支。例如?我觉得将 PR 放入版本分支而不是 master 很奇怪。
  • @migg 不幸的是,历史上没有大师。 3.4 是从 3.3 分支出来的,依此类推。最新的分支正在扮演主人的角色。所以现在我在 3.5 中,想合并 3.4-中的所有 PR。

标签: git github pull-request


【解决方案1】:

所有的拉取请求都保存在这里

pull/ID/head

您可以通过

在本地查看s pull request
git fetch REMOTENAME pull/ID/head:BRANCHNAME
git checkout BRANCHNAME 

如果你想要所有的 pull,你可以添加到 fetch ref

这是一个只读地址。是你不能推回它更新拉取请求

远程名称是远程的本地git名称

这些由git remote -v显示

【讨论】:

  • 这似乎可以帮助我,但我不太明白你的问题。这究竟能让我做什么?
  • 分支名称是什么?这是我当前的分支,还是这个 PR 的目标分支?还是PR自己的分支?
  • branch name 是一个新的本地分支的名称,用于引用此拉取请求。例如git fetch oldGit pull/1234/head:old-pull-1234
  • 实际上你对这个命名更让我困惑。假设 A 是我希望 PR 合并到的当前分支,B 是原始 PR 的目标分支,ID 是 PR 的 id,C 是 PR 作者的分支名称,我应该在该命令中输入什么?
  • 你要我先把 PR 合并到旧分支吗?
【解决方案2】:

由于可能不需要旧分支,您可以将拉取请求合并到旧分支(如拉取请求中最初请求的那样),然后从旧分支(例如 3.3)创建新的拉取请求到新的一个(例如 3.5)。

【讨论】:

  • 这个想法是保留旧分支,以便人们能够下载旧版本。我不想用新的修复来破坏它们。
  • 您可以为此目的使用标签
【解决方案3】:

在 github.com 的 pull-request 页面上,有一个指向“命令行指令”的链接。如果您喜欢手动操作,步骤如下:

  • 从 PR 目标分支创建一个新的合并分支。签出合并分支。通过哈希或头引用将 PR 拉入合并分支。
  • 通过 pull、merge 或 cherry-pick 将合并分支合并到新的目标分支中。

更多搜索发现此页面有关renaming branch on github website。它建议:

  • 将默认分支设置为旧目标分支。使用不同的名称从旧目标分支创建一个分支。
  • 将 PR 合并到旧目标分支。将旧目标分支重命名为不同的名称。
  • 将您的另一个新分支重命名为旧目标分支名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2016-05-29
    • 2017-12-20
    • 2021-10-03
    • 2017-12-02
    相关资源
    最近更新 更多