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