如何回退到GitHub的最近一次提交?
回退Git提交的具体操作方案(适配你的场景)
看了你的git log输出,当前本地master和远程origin/master都指向最新提交0d74db9(备注“重构导航栏”)。我猜你应该是想撤销这次提交,回到上一次e5e7f70(“小范围设计调整及Bug修复”)的状态吧?下面分两种常见情况给你一步步操作:
情况1:仅调整本地分支,还没推送到远程
(虽然你的log显示已经推了,但还是提一下这种高频场景)
- 要是你想保留这次提交的修改(变成本地未暂存的代码,方便后续调整):
git reset --soft e5e7f7002f76f47e394c097f770e325c7058002d - 要是你想彻底丢掉这次提交的所有修改,直接回到上一次的干净状态:
git reset --hard e5e7f7002f76f47e394c097f770e325c7058002d
情况2:已经推送到GitHub远程分支,需要同步回退
因为你的代码已经推到远程了,这时候要让远程也回退到之前的提交,得用强制推送,步骤如下:
- 先把本地分支回退到目标提交:
git reset --hard e5e7f7002f76f47e394c097f770e325c7058002d敲黑板:
--hard会直接抹掉当前提交的所有修改,如果你还想留着这些代码,可以换成--soft,但之后得重新提交再推,不过这种方式不建议在多人协作的项目里用,容易给队友添麻烦。 - 强制推送到远程的
master分支:git push origin master --force注意:如果是团队一起开发的项目,强制推送会覆盖远程的提交历史,一定要提前和队友说清楚,别搞丢别人的代码!
另外,如果你只是想让本地代码和远程最新的提交完全一致(比如本地有乱七八糟的未提交修改,想一键回到远程状态),可以跑这几条命令:
git checkout master git fetch origin git reset --hard origin/master
内容的提问来源于stack exchange,提问作者Fille_M
相关产品推荐
相关产品推荐

