在开发中,如果代码误推到远端仓库,应该怎么回退?如下,我们以需要回退到three demo这次代码版本为例子。
方法1:git revert
// local changes回退到上一次提交代码版本
git revert HEAD
// 重新提交代码,此次提交生成一次git记录,前一次git log是提交了错误代码的版本,前前一次git log是提交错误代码前的版本,是我们想要回滚的版本,和此次提交的代码内容一致
git add -A
git commit -m "revert wrong commit"
// 推送到远端,代码回退成功
// 此方法错误提交的记录会保存
git push origin master
方法2:git reset
// 回退到需要git log版本,可以根据情况选择hard/soft模式,如果需要保留之前提交的代码到本地,可以选择soft模式,如果不需要则选择hard模式,本地代码将会回退到对应git log版本,之前提交的代码不会保存到本地,之前的git log也会消失
git reset --hard HEAD^
// 加-f强制推送本地代码到远端仓库,因为reset之后本地库落后于远程库一个版本,因此需要强制推送
// 强制推送到远端,代码回退成功
// 此方法错误提交的记录会消失
git push origin master -f
Tips:
// 撤销方法
a、git revert HEAD //撤销最近一次提交
b、git revert HEAD~1 //撤销上上次的提交,ps:数字从0开始
c、git revert 0aabbcc //撤销0aabbcc这次提交
// git reset后git log查看不到之前的提交记录怎么办?
git reflog //查看所有git提交记录