所以我开始使用 Git,我觉得我做错了什么。
我正在尝试回滚到我的 fork 上的某个提交,将所有提交历史及其更改删除回该点。我已经尝试了所有可以在这里找到的建议,但并没有什么不同。我需要向一个项目发出拉取请求,但它包括我所做的所有提交,以及大量的合并提交。其他所有参与它的人都没有我自己那么多的提交,所以我相信我做错了什么。
我想要恢复的唯一真正原因是因为我做了一个 WIP 提交,我不想包含在请求中,所以我想在此之前开始清理。
提前致谢。
使用git reset --hard
回到你需要的地方,然后提交,最后推送新版本。--force
(在推送覆盖远程分支时,您需要使用该标志。)
不过,尽量不要养成这样做的习惯,因为如果有人真的对你推的分支做了什么,覆盖它会让他们有自己的问题需要解决。
git reset --hard <commit_id>
将努力做你想做的事。如果您没有 shell 访问权限(即它是 github 存储库等),您可以在客户端上执行相同的操作,然后git push -f
强制推送。通常,如果目标的当前 HEAD 不是新 HEAD 的祖先,则推送将失败。
但是如果你这样做,请注意任何克隆或拉取旧 HEAD 的人都会非常困惑:他们未来的拉取将因合并失败而死亡,他们将永远恨你。重写历史应该永远是最后的手段。