有人接受了他们不该接受的请求。现在我们合并了一堆破碎的代码。如何撤销拉请求?我只是打算在合并之前将更改恢复到提交,但我注意到它合并了一堆提交。这是这个人在合并前提交的所有文件。你该怎么做呢?
当前回答
这个问题有一个更好的答案,尽管我可以一步一步地分解它。
你需要像这样获取和签出最新的上游更改,例如:
git fetch upstream
git checkout upstream/master -b revert/john/foo_and_bar
查看一下提交日志,你应该会发现类似这样的东西:
提交b76a5f1f5d3b323679e466a1a1d5f93c8828b269 合并:9271e6e a507888 作者:Tim Tom <tim@tom.com> 日期:2013年4月29日星期一06:12:38 -0700 Merge pull request #123 from john/foo_and_bar 添加foo和bar 提交a507888e9fcc9e08b658c0b25414d1aeb1eef45e 作者:John Doe <john@doe.com> 日期:2013年4月29日星期一12:13:29 +0000 添加栏 提交470年ee0f407198057d5cb1d6427bb8371eab6157e 作者:John Doe <john@doe.com> 日期:4月29日星期一10:29:10 2013 +0000 增加foo
现在您希望恢复整个拉请求,并能够在以后取消恢复。 为此,您需要获取合并提交的ID。
在上面的例子中,合并提交是最上面的一个,上面写着“Merged pull request #123…”
这样做可以恢复这两个更改(“Add bar”和“Add foo”),你最终会在一次提交中恢复整个pull请求,你可以在以后取消恢复,并保持更改历史干净:
git revert -m 1 b76a5f1f5d3b323679e466a1a1d5f93c8828b269
其他回答
如果您给出以下命令,您将得到包括提交、合并在内的活动列表。
git 引用日志
你的最后一次提交应该是在'HEAD@{0}'。你可以同样检查你的提交信息。 要到达那个点,使用命令
git重置—hard 'HEAD@{0}'
您的合并将被恢复。如果您有新的文件,请丢弃合并中的更改。
这个问题有一个更好的答案,尽管我可以一步一步地分解它。
你需要像这样获取和签出最新的上游更改,例如:
git fetch upstream
git checkout upstream/master -b revert/john/foo_and_bar
查看一下提交日志,你应该会发现类似这样的东西:
提交b76a5f1f5d3b323679e466a1a1d5f93c8828b269 合并:9271e6e a507888 作者:Tim Tom <tim@tom.com> 日期:2013年4月29日星期一06:12:38 -0700 Merge pull request #123 from john/foo_and_bar 添加foo和bar 提交a507888e9fcc9e08b658c0b25414d1aeb1eef45e 作者:John Doe <john@doe.com> 日期:2013年4月29日星期一12:13:29 +0000 添加栏 提交470年ee0f407198057d5cb1d6427bb8371eab6157e 作者:John Doe <john@doe.com> 日期:4月29日星期一10:29:10 2013 +0000 增加foo
现在您希望恢复整个拉请求,并能够在以后取消恢复。 为此,您需要获取合并提交的ID。
在上面的例子中,合并提交是最上面的一个,上面写着“Merged pull request #123…”
这样做可以恢复这两个更改(“Add bar”和“Add foo”),你最终会在一次提交中恢复整个pull请求,你可以在以后取消恢复,并保持更改历史干净:
git revert -m 1 b76a5f1f5d3b323679e466a1a1d5f93c8828b269
如果你想撤销拉请求,我们可以遵循这些 步骤,
活动列表全部拉请求
git reflog
运行上述命令后,将出现此输出。
执行reset命令-
git reset --hard 6954dff92
其中6954dff92合并id,以及基于合并id更新的代码。
谢谢,希望能对大家有所帮助,请大家喜欢和支持。
如果拉人是他做的最后一件事
git reset --hard HEAD~1
我一直用这个地方,谢谢。
我在搜索如何撤销拉请求,然后到了这里。
我正准备重新开始,很难回到"很久以前"然后 快进到我做拉请求之前的地方。
除了看这里,我还问我的同事他会做什么, 他有一个典型的好答案:使用输出的例子 上面的第一个答案:
git reset --hard 9271e6e
和Git中的大多数事情一样,如果你用某种不容易的方式来做, 你可能做错了。
推荐文章
- 防止在GitHub上推送到master ?
- 我如何在github上引用特定问题的评论?
- 根据Git,谁是“我们”,谁是“他们”?
- git如何合并后樱桃采摘工作?
- Git搜索单个文件历史记录中的字符串
- Git命令显示所有(轻量级)标签创建日期
- 我如何才能看到我在Github上看到的所有问题?
- Gitignore并没有忽视文件夹
- 什么时候用。git/info/exclude代替。gitignore来排除文件?
- 如何告诉git忽略个别行,即gitignore为特定行代码
- 在GitHub上链接到其他Wiki页面?
- “git diff——耐心”是什么意思?
- 你如何跟踪你对GitHub问题的评论?
- 我如何在GitHub中为其他人的代码做出贡献?
- 签出旧的提交并使其成为新的提交