通过拉取请求从主分支中删除提交

时间:2018-04-30 07:25:11

标签: git github

我必须从主分支中删除一个提交,该提交被锁定以进行直接提交,并且只允许通过pull请求进行提交。

我遵循了以下步骤:

git checkout -b commitreversal
git reset --hard HEAD~1
git push origin commitreversal --force

当我尝试使用 commitreversal 分支提出拉取请求时,它说

  

"没有什么可比较的。师父与所有人保持同步   从commitreversal提交。"

我该怎么办?

1 个答案:

答案 0 :(得分:2)

您无法通过拉取请求重写Git的历史记录。您必须执行git push --force,并且由于您的主分支已被锁定,因此您可能没有管理权限来执行此操作。

如果您真的想要重写历史记录,那么您必须与拥有该存储库管理权限的人核实并要求他进行更改并执行git push --force。这意味着拥有该存储库副本的每个人基本上都必须重新克隆它(或重新设置)以恢复工作版本。

或者,正如@jonrsharpe建议的那样,你应该做一个还原而不是硬重置。

git revert commit-id

其中commit-id是您尝试删除的提交的哈希ID。

将删除在该提交期间所做的所有更改,而不会更改git的历史记录本身。您可以在其上创建拉取请求。