拉取请求合并,关闭,然后还原 - 现在无法再拉动分支

时间:2014-08-25 11:30:16

标签: git github merge pull-request

GitHub在经过几次操作后似乎有点失落 - 我当然是......

所以,这是故事:
我是git的新手,也是github的新手。在我的存储库中,我有一个分支(让我们称之为B)我正在处理一个功能。

  1. 为了使事情透明,我创建了一个拉取请求。
  2. 我的合作者(完整的git / github新手)点击合并拉取请求(可能只是探索界面)。
  3. 该功能尚未就绪,所以我还原了合并。
  4. 现在我想继续我在分支B上的工作,然后合并它,但是虽然分支是不同的超过800行,GitHub显示只有一行差异(一次提交)。

    这可能是因为我在恢复更改后尝试重新打开旧的请求。我确实重新打开了拉取请求,但合并选项不再可用。我尝试关闭或打开旧的pull请求并创建一个新的pull请求(将分支B拉到master),但这只显示一个提交,好像所有其他提交都被原始的pull请求吃掉了(虽然还原了)。但是,如果我尝试将master拉到B - 它会显示所有差异(约+ 800 / -300差异)。

    我想回到B分支上安静地工作 - 我想回到B可以自动合并的那一刻(现在不可能因为新的拉动请求显示Bmaster之间只有一个微小差异,而实际差异则不同)。最简单的方法是什么?

3 个答案:

答案 0 :(得分:4)

而不是试图摆弄B,你可以简单地说:

  • 创建一个新分支C
  • B的先前提交开始(合并很容易)
  • cherry-选择B
  • 中需要的C提交内容

如果需要,您可以从C制作公关。

答案 1 :(得分:1)

我知道这是一个老问题,但我遇到了同样的问题并找到了一个简单的解决办法:

我刚刚从master创建了一个新分支,并将项目文件夹的内容替换为我之前正在处理的分支中的内容。 (逐字复制并粘贴文件夹内容)。在此之后,当我运行git status时,它显示了正确的修改。

这是一个更原始的解决方案,但它可以工作,之后我能够创建PR,显示主人和我正在处理的分支的正确更改。

答案 2 :(得分:1)

我认为最干净的解决方案是在主服务器上创建一个新的分支,然后恢复恢复PR的提交。类似的东西:

git checkout master
git checkout -b retry_B  # create new branch
git log  # find commit hash for the revert
git revert <hash_from_revert>