恢复了来自 github 的拉取请求,但两个分支没有区别
Posted
技术标签:
【中文标题】恢复了来自 github 的拉取请求,但两个分支没有区别【英文标题】:Reverted a pull request from github but both branch shows no difference 【发布时间】:2018-08-29 09:14:54 【问题描述】:我已经按照这篇文章https://help.github.com/articles/reverting-a-pull-request/ 恢复了来自 GitHub 的拉取请求。现在,即使在我比较两个分支时恢复后,它也显示相同。如何再次提出拉取请求?
这就是我所做的
-
我从 prod_bug_fix 分支向 release/13.0.0 提出拉取请求,然后转到 github 并合并。
然后我按照上面的文章取消合并拉取请求。现在我认为 release/13.0.0 代码会像我提出拉取请求之前一样回来。
我尝试再次从 prod_bug_fix 向 release/13.0.0 提出拉取请求,但它显示“没有什么可比较的”。 .但我可以看到两个分支之间存在代码差异。
我做错了什么以及如何使 release/13.0.0 恢复到与以前相同的状态?
【问题讨论】:
检查release/13.0.0
的历史记录,看看它是否包含prod_bug_fix
的提交。如果使用git revert
实现恢复拉取请求,看起来提交已经被合并。
嗨,斯蒂芬,是的,r/13.0.0 确实有来自 prod_bug_fix 的提交。现在可以做什么?
也许还原还原?我在这里猜测,所以请仔细测试。
【参考方案1】:
这个答案有点晚了,但我自己遇到了这个问题,最后发现revert的行为很奇怪,因为原始提交被恢复仍然在历史中,所以当你去创建一个新的PR时它仍然认为它在那里,所以你在做差异时看不到任何区别。 This *** 的答案提供了一些关于它的更多细节。
【讨论】:
【参考方案2】:由于您恢复的合并将始终在历史记录中,因此您需要在提交新 PR 之前将该合并重播到 prod_bug_fix。
首先,通过检查并执行git merge **release/13.0.0**
来更新prod_bug_fix(这可能是一个简单的快进合并)。
现在假设您恢复的合并具有哈希abc123
;您将使用git cherry-pick -m 1 abc123
重播对该合并的所有更改到prod_bug_fix。 -m 1
告诉 git “重播对合并的第一个父级 (release/13.0.0) 所做的更改,而不是对第二个父级所做的更改 (prod_bug_fix)。完成此操作后,从 prod_bug_fix 到 release/13.0.0 的 PR 将按预期工作。
【讨论】:
以上是关于恢复了来自 github 的拉取请求,但两个分支没有区别的主要内容,如果未能解决你的问题,请参考以下文章