如何还原 git 分支上的最后一次推送?

How to revert back a last push on the git branch?

我的仓库中有很多 branches。我不小心推到了名为 feature/customer 的分支。现在我想回滚那个推动。如何回滚 git 中分支 feature/customer 的推送?

假设 feature/customer 分支被其他人共享,并且其他人可能已经取消了您的意外提交,最好的办法是 revert 提交:

# from feature/customer
git revert HEAD

这将在 customer 分支之上添加一个 new 提交,这将在功能上撤消您的意外提交可能引入的任何内容。现在您只需要再次定期推送即可将此还原提交提交到存储库。

请注意,如果意外提交包含任何敏感信息,您可以尝试覆盖远程分支。但是,总有其他人已经拉动的可能性。此外,之前的意外提交仍会在远程 reflog 中存在一段时间。

如果您有远程权限。您可以执行以下操作:

git push -f origin last_known_good_commit:branch_name

另外可以参考Undoing a 'git push'