如何在特定提交后覆盖所有提交而不必 git 拉取?

How to overwrite over all commits after a specific commit without having to git pull?

git reset --hard <specific commit from earlier> 然后做了一些新的提交。当我尝试推送这些新更改时,系统提示我 git 拉取 <specific commit from earlier> 之后所做的更改。我正试图覆盖这些更改 git 提示我拉。这是一个简单的项目,所以我只有一个主分支。什么是最好的纠正方法?

您可以使用此命令强制推送您的更改:

git push origin <your_branch_name> --force

通过执行 git reset --hard <earlier commit> 然后尝试推动它,您实际上是在尝试修改历史记录(通过删除它)。除非在 git push.

上给出 --force--force-with-lease(最好)标志,否则不允许修改历史记录

请记住,如果其他人拥有旧版本的分支,您可能需要通知他们,以便他们可以更正副本以匹配新的历史记录。

更多信息请见 man git-push