【问题标题】:Removing a merged pull request from history从历史记录中删除合并的拉取请求
【发布时间】:2015-04-08 23:22:50
【问题描述】:

几天前合并了一个拉取请求,我们已决定需要发布整个内容。

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

我在下面包含了我的提交图的屏幕截图。我要删除的有问题的提交是19fdbd1

我尝试使用git rebase 19fdbd1 来执行此操作,但它没有达到预期的效果,因为相关功能仍然存在。不过我很可能做错了。

【问题讨论】:

  • 你的意思是从你的提交历史中删除一个提交,对吧?我很确定你不能让拉取请求消失,除非你的 git gui 有特定的命令/工具。 (我是根据我在 GitHub 的经验说的)
  • 正确,“删除合并的拉取请求”是我应该说的。
  • OK...好吧,您可以通过查看下面的答案从合并的拉取请求中删除提交。在 Github 之类的 GUI 中,您无法让 Pull Request 消失。 stackoverflow.com/questions/18318097/…

标签: git


【解决方案1】:

git revert --interactive 19fdbd1

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

squash 19fdbd1 COMMIT MESSAGE

现在,git push -f origin BRANCH_NAME

Boom...19fdbd1 从未存在过。

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

git revert 19fdbd1

这会创建一个新的提交来摆脱19fdbd1

然后简单地git push origin BRANCH_NAME

注意这里没有-f,因为我们没有重写提交历史,只是从一个特定的提交中删除了更改。

【讨论】:

    【解决方案2】:

    使用git rebase -i 来准确指定您希望如何删除提交。 (也就是说,这听起来更像是git revert 的工作。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-02
      • 2016-03-13
      • 2020-07-01
      • 1970-01-01
      • 2021-10-15
      • 2021-10-13
      • 2018-05-02
      • 1970-01-01
      相关资源
      最近更新 更多