git,如何覆盖提交

Sas*_*sha 6 git

我搞砸了我的应用程序,最后做了一个

git checkout <commit number>
Run Code Online (Sandbox Code Playgroud)

回到我想去的地方。

当我做一个 git status 时,它说

 Your branch is behind 'origin/master' by 5 commits, and can be fast-forwarded.
Run Code Online (Sandbox Code Playgroud)

我想我是最近一次提交的第 5 次。有没有办法让我最近提交的第 5 个提交成为我最近提交的第 5 个?几乎覆盖或丢弃我前四个提交中的所有内容?

更新。

我做了一个

git reset --hard <commit number>
Run Code Online (Sandbox Code Playgroud)

但是如何推送到我的存储库?它说...

To prevent you from losing history, non-fast-forward updates were rejected
Run Code Online (Sandbox Code Playgroud)

我不想执行合并,我非常想清除我最近的 4 次提交

谢谢

Gar*_*eth 5

您始终可以使用以下-f选项强制推送:

git push -f origin master
Run Code Online (Sandbox Code Playgroud)

但当然要小心,因为这毁掉历史。

还要确保指定远程和分支名称,因为没有它,默认情况下 git 将尝试强制将所有分支推送到给定(或上游)远程。