有人接受了他们不应该接受的 pull 请求。现在我们 merge 了一堆损坏的代码。如何撤消 pull 请求?我正打算在 merge 之前将更改还原到提交,但我注意到它 merge 在一堆提交中。所以现在有这个人在 merge 前几天的所有这些提交。如何撤消此操作?
最佳答案
有一个better answer对于这个问题,虽然我可以一步一步地分解它。
您需要像这样获取和检查最新的上游更改,例如:
git fetch upstream
git checkout upstream/master -b revert/john/foo_and_bar
查看提交日志,您应该会发现类似这样的内容:
commit b76a5f1f5d3b323679e466a1a1d5f93c8828b269 Merge: 9271e6e a507888 Author: Tim Tom <tim@tom.com> Date: Mon Apr 29 06:12:38 2013 -0700 Merge pull request #123 from john/foo_and_bar Add foo and bar commit a507888e9fcc9e08b658c0b25414d1aeb1eef45e Author: John Doe <john@doe.com> Date: Mon Apr 29 12:13:29 2013 +0000 Add bar commit 470ee0f407198057d5cb1d6427bb8371eab6157e Author: John Doe <john@doe.com> Date: Mon Apr 29 10:29:10 2013 +0000 Add foo
现在您想要还原整个 pull 请求并能够稍后取消还原。 为此,您需要获取 merge 提交 的 ID。
在上面的例子中,merge commit 是最上面的那个,上面写着“Merged pull request #123...”。
执行此操作以还原两个更改(“添加栏” 和 “添加 foo”),您最终将在一次提交中还原整个 pull 请求您可以稍后取消还原并保持更改历史记录干净:
git revert -m 1 b76a5f1f5d3b323679e466a1a1d5f93c8828b269
关于git - 通过 pull 请求撤消 merge ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6481575/