git已commit并push到远程分支后,发现上次push的内容多了,想撤回,即回退到上上次push后的状态,以下是操作步骤:(注:建议进行下面操作时先对本地代码进行备份)
- git reflog 查看当前分支提交的版本commit
可以看到最近的这两次提交的版本,前面的7位码就是commit,现在想撤回最后一次提交,即“付款实现批量导入”,回退到上上一次提交后 - git reset --hard HEAD~1 回退到上个commit()
再看一下log:
发现HEAD现在指向了上一次提交“付款添加导入规则”,现在本地分支已经回退到上个commit了,可以查看代码确认,下面就是将本地分支推送到远程分支。 - git push --force 强制推送
直接用git push推送,会发现错误提示,因为当前本地分支比远程分支落后,会拒绝推送,虽然有提示’git pull …’) before pushing again,但要注意了,我们本意是想回退到上一个版本,如果这里执行了拉取,相当于我们之前1、2步的操作都白做了,所以这里要执行强制推送,即git push --force,操作结果如下:
到这里就回退成功了,可以查看下远程分支,最后一个commit就是"付款添加导入规则",而“付款实现批量导入”这个commit已经没有了。