Git恢复合并

Git恢复合并

问题描述:

我有一个功能分支创建,比如说github上的feature/branch1。 我为它创建了一个拉取请求并将它合并。 Initial PR Merge CommitGit恢复合并

当达到我们的管道,我们计算有问题,我们得到了它恢复使用的Git上的 Revert按钮,这就造成我们合并了主,一切都很好了“还原” PR。 Reverted Merge Commit

几个星期之后,即得到了合并到主后其他永久居民,我们想通我们会还原最回复。这一次,我们进入了关闭的Revert PR,并尝试再次使用Revert按钮。但是我们收到了此错误消息

Sorry, this pull request couldn’t be reverted automatically. 
It may have already been reverted, or the content may have changed since it was merged. 

如何完成此回复?

我希望拥有的最理想的情况是拥有一个新分支,其中包含还原,所以我可以做出进一步更改并通过PR流程返回。

+0

你用什么工具恢复?我严重怀疑git本身会打印它 – max630

+0

这个'revert'按钮是github上的一个功能。 – Serendipity

你看到的错误是github的人工检查,我个人觉得这是不需要的。您可以在本地恢复恢复:

git fetch origin master 
git checkout origin/master (or reset) 
git revert <REVERT HASH> 
git push origin master 

这应该成功,模数与自恢复以来所做的更改发生冲突。 PS:其实,错误可能是因为冲突。

+0

错误确实是由于冲突。尽管github并没有提供太多的信息。 – Serendipity

什么你可以尝试是:

  • 复位(git reset --hard old_commit),其PR分支的承诺要恢复到(这是恢复的)
  • 力推(git push --force)分支:是将更新PR

这样,PR就会再次执行旧提交。

这是一个合并提交。公关已经关闭并合并。

在这种情况下,如果你有取旧PR分支,你可以这样做:

  • 就可以了git loggit log origin/old_pr_branch
  • 从旧SHA1一个新的分支提交代表内容您现在想

    git checkout -b new_pr_branch old_sha1 
    
  • 推到原点

    混帐推-u起源new_pr_branch

然后,您可以随时向他的新分支新的PR,用正确的内容。

+0

我需要更多信息。这是一个合并提交。 PR已关闭并合并。我读过它是不可能重新打开一个关闭的PR。我读到你的答案错了吗? – Serendipity

+0

@Sendndipity我没有得到公关被关闭。你还能访问公关分支吗?这个想法将是基于旧的提交(被恢复的,但现在你想要的)创建一个新的分支,并从该新分支创建一个新的PR。 – VonC

+0

我有权访问PR分支,是的。然而,我读到你的答案的方式,似乎更新现有的公关分支 – Serendipity