如何撤销 Git 的 push 操作?

7
我使用 git push <branch_name> 命令将一些文件推送到了Github上。当我打开PR时,这些文件出现在更改中。如何撤销这个git push操作?简而言之,在推送之前,我尝试过对该文件进行git reset,但显然我将文件名误输了。现在我该怎么办?
如何撤消对Github的推送?

这个代码库有其他开发者做出贡献吗?自从上次修改以来,有人对它进行了任何更改吗? - Will
1个回答

20

首先,在操作之前请备份,以防万一。使用命令 -b <branchname>将存储库克隆为<repository>-backup 并保留原始版本不变。

其次,在 git log 中找到最后一个稳定的提交哈希值。

然后运行:

git push --force origin <last good commit hash>:<branch>

请注意,重写历史记录通常被认为是一个坏主意,除非您是该存储库的唯一用户。如果其他人使用了带有提交更改的仓库,而您进行了强制推送并删除了该提交,则该仓库将进入损坏状态。

除非您推送了一些真正需要删除的敏感信息,否则只需使用以下命令还原提交:

git revert <commit hash to revert>
git push

这刚刚救了我的一天 - lakhassane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接