繁体   English   中英

Git还原合并的还原

[英]Git Revert a Revert for a Merge

我创建了一个功能分支,让我们在github上说feature/branch1 我为它创建了一个pull请求并将其合并。 初始PR合并提交

当它到达我们的管道时,我们发现存在问题,我们使用Git上的Revert按钮将其恢复。这创建了一个“Revert”PR,我们与master合并,一切都很顺利。 还原合并提交

几个星期后,发布其他合并到主人的PR,我们认为我们会恢复 - 恢复 这一次,我们进入了已关闭的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过程。

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

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

这应该成功,与自恢复以来所做的更改的模数冲突。

PS:实际上,错误可能是因为冲突。

你可以尝试的是:

  • 重置( git reset --hard old_commit )PR分支到你想要恢复的提交(被还原的那个)
  • force push( git push --force )那个分支:那会更新PR

这样,PR再次使用旧提交完成。

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

在这种情况下,如果您获取旧PR分支,则可以执行以下操作:

  • 一个git log吧( git log origin/old_pr_branch
  • 来自旧SHA1提交的新分支,代表您现在想要的内容

     git checkout -b new_pr_branch old_sha1 
  • 推动起源

    git push -u origin new_pr_branch

然后,您可以使用正确的内容从该新分支制作新的PR。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM