首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从拉取请求中删除提交?

如何从拉取请求中删除提交?
EN

Stack Overflow用户
提问于 2016-02-22 02:03:14
回答 2查看 4K关注 0票数 3

我的pull-request中有一个提交。然后,我尝试更改我的电子邮件,并在更改后强制执行更改。现在,我的pull-request中有很多来自其他人的提交。如何删除这些提交?

我已经尝试过get reset,但是其他人的提交仍然显示在pull-request中。

现在,我的分支已经将创建主存储库以来的所有提交都包含在其中。

EN

回答 2

Stack Overflow用户

发布于 2016-02-22 04:40:41

可能发生了什么

可能,上游存储库在您提交当前拉取请求之前已经包含了一些(至少一个)由您提交的提交(使用您的旧/真实电子邮件地址)。当你遵循GitHub的Changing author info方法时,这些提交也被filter-branch脚本重写了,并且扩展到所有这些提交的后代,无论你是不是你,也都被重写了。

这就是该页面有一个红色警告框的原因

此操作会破坏存储库的历史记录。如果您正在与他人合作开发存储库,那么重写已发布的历史被认为是不好的做法。您应该只在紧急情况下执行此操作。

和一个蓝色的信息框,详细说明

备注:运行此脚本将重写所有存储库协作者的历史记录。完成这些步骤后,任何使用分支或克隆的人都必须获取重写的历史,并将任何本地更改重新设置为重写的历史。

您在该repo中的第一次提交可能是在其历史的早期,这就是为什么您现在在您的拉取请求中看到几乎整个repo的历史。

当前PR可能导致的结果

如果您修改后的拉取请求现在按原样合并,那么上游存储库将有两次当前提交:一次是在其原始变体中,另一次是由您重写状态。这会造成一个非常混乱的仓库历史,而且没有任何好处,因为你的旧的/真实的电子邮件地址仍然会在历史中。

你可以(和应该)做什么?

要么撤回您的拉取请求,要么

  1. 找到您的分支最初所基于的上游存储库提交。
  2. 将您的分支重新定位到该提交上。这应该是可能的,没有任何合并conflicts.
  3. Force-push您的分支,从而再次更新拉取请求。

现在,您的拉取请求应该再次只引入新提交的提交,并且可能(如果其他情况下是好的和想要的)被上游存储库所有者接受。

票数 6
EN

Stack Overflow用户

发布于 2016-02-22 02:13:02

如果您更新分支机构,PR将会更新。做你需要做的事情,让分支看起来像你想要的样子。您可能必须重置它并强制推送您的更改。

如果是我的话,我会取消公关,换个新的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35539824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档