我在我的拉取请求中有一个提交。然后我尝试更改我的电子邮件,并在此之后强制推送更改。现在,我在我的拉取请求中有很多来自其他人的提交。如何删除这些提交?
我尝试了git reset,但其他人的提交仍然显示在拉取请求中。
现在,我的分支中包含了自主库创建以来的所有提交。
我在我的拉取请求中有一个提交。然后我尝试更改我的电子邮件,并在此之后强制推送更改。现在,我在我的拉取请求中有很多来自其他人的提交。如何删除这些提交?
我尝试了git reset,但其他人的提交仍然显示在拉取请求中。
现在,我的分支中包含了自主库创建以来的所有提交。
很可能,在您提交当前拉取请求之前,上游存储库已经包含了一些(至少一个)您的提交(使用旧/真实电子邮件地址)。当您按照GitHub的更改作者信息指南操作时,这些提交也被filter-branch
脚本重写,并且所有这些提交的后代(无论是否由您)也被重写。
这就是为什么该页面有一个红色警告框
此操作会破坏您的存储库历史记录。如果您正在与他人协作使用存储库,则重写已发布的历史记录被认为是不好的做法。您应该只在紧急情况下执行此操作。
和一个蓝色信息框进一步解释
注意:运行此脚本会重写所有存储库协作者的历史记录。完成这些步骤后,具有分支或克隆的任何人必须获取重写的历史记录并将任何本地更改合并到重写的历史记录中。
您在该存储库中的第一个提交可能很早,这就是为什么您现在在拉取请求中看到了几乎整个存储库的历史记录。
如果您修改后的拉取请求按原样合并,则上游存储库将有其当前提交的大部分重复:一次是原始状态,一次是您重写的状态。这将导致存储库历史记录非常混乱,并且没有任何好处,因为您的旧/真实电子邮件地址仍然存在于历史记录中。
要么撤回您的拉取请求,要么
现在,您的拉取请求应该只引入新贡献的提交,并且(如果其他方面良好且需要)可能会被上游存储库所有者接受。
如果您更新了分支,PR将会更新。根据您的需求对分支进行操作,使其看起来符合您的要求。您可能需要重置并强制推送更改。
如果是我,我会取消该PR并创建一个新的。
git filter-branch
命令? - das-g