【问题标题】:Reverted a pull request from github but both branch shows no difference恢复了来自 github 的拉取请求,但两个分支没有区别
【发布时间】:2018-08-29 09:14:54
【问题描述】:

我已经按照这篇文章https://help.github.com/articles/reverting-a-pull-request/ 恢复了来自 GitHub 的拉取请求。现在,即使在我比较两个分支时恢复后,它也显示相同。如何再次提出拉取请求?

这就是我所做的

  1. 我从 prod_bug_fix 分支向 release/13.0.0 提出拉取请求,然后转到 github 并合并。
  2. 然后我按照上面的文章取消合并拉取请求。现在我认为 release/13.0.0 代码会像我提出拉取请求之前一样回来。
  3. 我尝试再次从 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 的提交。现在可以做什么?
  • 也许还原还原?我在这里猜测,所以请仔细测试。

标签: github pull-request git-revert


【解决方案1】:

这个答案有点晚了,但我自己遇到了这个问题,最后发现revert的行为很奇怪,因为原始提交被恢复仍然在历史中,所以当你去创建一个新的PR时它仍然认为它在那里,所以你在做差异时看不到任何区别。 This StackOverflow 的答案提供了一些关于它的更多细节。

【讨论】:

    【解决方案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_fixrelease/13.0.0 的 PR 将按预期工作。

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 1970-01-01
      • 2022-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 2014-11-30
      • 2020-06-25
      相关资源
      最近更新 更多