从历史记录中删除合并的拉取请求

时间:2015-04-08 23:22:50

标签: git

拉动请求在几天前合并了,我们已经决定整件事需要出来。

在此操作之后已经提交了一些提交,我想保留这些提交。

我已经在下面提供了我的提交图表的屏幕截图。我想删除的提交是19fdbd1

我尝试使用git rebase 19fdbd1执行此操作,但由于相关功能仍然存在,因此无效。我很可能这样做不正确。

example

2 个答案:

答案 0 :(得分:2)

git revert --interactive 19fdbd1

现在,在vim或您的编辑器终端中,在19fdbd1旁边,输入:

squash 19fdbd1 COMMIT MESSAGE

现在,git push -f origin BRANCH_NAME

轰隆...... 19fdbd1从未存在过。

但是,如果您希望其余的提交ID完全相同,则不能直接删除19fdbd1,而且您必须这样做:

git revert 19fdbd1

这会创建一个摆脱19fdbd1

的新提交

然后只需git push origin BRANCH_NAME

请注意,此处没有-f,因为我们没有重写提交历史记录,只是从一个特定提交中删除了更改。

答案 1 :(得分:1)

使用git rebase -i来确切指定删除提交的方式。 (也就是说,这听起来更像是git revert的工作。)