如何从pull请求重新创建分支?

时间:2016-10-05 14:20:49

标签: git github

我分叉了一个项目,从master创建了一个新的分支,进行了更改并为原始项目创建了一个pull请求。但突然间我忘了我创建了这个拉取请求并完全从远程(GitHub)和我的PC上删除了我的fork。如何从pull请求重新创建分支(或fork)以添加更改并让它合并?

2 个答案:

答案 0 :(得分:1)

您可以做两件事:

<强> 1。联系GitHub支持

在为您尝试我的解决方案的同时,我删除了一个叉子,我自己还有一个PR仍在等待,并且情况与您相同。

除了联系GitHub支持之外,目前还没有办法重新连接到该PR。他们可以恢复已删除的fork,它也会将其重新挂接到挂起的PR。然后你可以简单地克隆你的分叉,改变你的PR分支并推送。

在GitHub工作人员回复联系表格之前,我的情况只有几分钟。 向GitHub鼓掌

<强> 2。制作新的PR

如果您不想打扰GitHub支持,或者对您来说太慢或不愿意,您可以执行以下操作:

  • 重新创建你的叉子
  • 通过执行git fetch <your configured remote for upstream> refs/pull/<your PR number>/head:<your branchname>
  • 从拉取请求中重新创建分支

这将在本地为您重新创建PR分支,然后更改您想要更改的内容,关闭原始PR并打开一个新PR。

答案 1 :(得分:0)

解决此问题的一种方法:

$ mkdir repo
$ git init; git remote add origin git@github.com:original/repo.git # not your fork

现在打开.git/config并添加以下行:

fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

所以它写着:

[remote "origin"]
  url = git@github.com:original/repo.git
  fetch = +refs/heads/*:refs/remotes/origin/*
  fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

然后运行

$ git fetch origin
$ git checkout origin/pr/<your pr number, as shown in their github repo>

然后只需在你的前叉中添加一个新遥控器,然后向上推动分支