从主分支恢复合并的拉取请求

时间:2021-06-15 13:16:45

标签: git gogs

我不小心将请求从我的功能分支 merged 拉入 master 分支,这是我不应该的。我正在使用 gogs 。我无法使用还原按钮,因为没有任何功能可用。如何将 master 恢复到 pull request 之前的位置,以便 master 分支再次干净。

主分支也受到保护,提交只能通过拉取请求推送。所以 git push -f 对我不起作用。

我已阅读其他问题,但它们与特定事件有关。我不知道如何才能做到这一点。

2 个答案:

答案 0 :(得分:0)

如果您在错误合并后没有添加任何其他提交,我建议您依赖命令行,如下所示:

git checkout master
git pull

git log --oneline --graph --decorate # Write down the hash of the last good commit

git reset --hard {{last-good-commit-hash}}

# Review your commits, and if it all right...

git push --force # Rewrite branch history, be carefully!!!

答案 1 :(得分:0)

我以前也遇到过同样的问题。转到您想要还原的提交并点击 Gogs 中的还原按钮是您应该做的。

如果这不起作用:使用 Git 进行的每次提交都有一个与之相连的提交哈希。这应该列在 Gogs 页面上的提交历史记录中。应该有一个按钮可以轻松复制任何散列,因此您不必输入它。如果您可以使用命令行控制台,则可以使用“git revert [code]”,其中代码是链接到较早提交的提交哈希。之后,“git push”。