git 回滚 (包括远程回滚)

219 阅读2分钟

额哼(咳嗽)。。。

挑眉.gif

搞一下

回滚分为两种

1. 本地回滚

2. 远程回滚

1.本地回滚,且保留之前修改的代码(commit了但没有push推送)

通过vsCode git可视化实现的,下次就做vscode git可视化教程 image.png

2.远程回滚(已经push了,远程分支上也有提交记录了)

2.1 git reset --hard 目标版本号(你要回滚到的那个版本号,要去到的版本号)

git reset --hard 26fb7f6706a49092ccd1dec22ad1b8be81f8dff7

image.png

如图则回滚成功

head指向push之前的这个版本(或者说是你想要跳转到的这个版本)

但注意,到目前为止,这些操作还仅仅是在本地

想要修改远程还需要push推送

image.png

但push会报错,因为本地版本落后于远程版本

这个时候需要强制推送

git push -f

出现

image.png

则是推送成功,这个时候看看远程,之前的那个版本是不是已经消失了

但这种强制推送要慎用,如果没有搞清楚这个历史关系,目标关系,很可能一下子回滚到侏罗纪,到时候再找回就麻烦了

最保险,而且留下记录的回滚是接下来的这种办法

2.2 git revert 目标版本号 (刚刚push上去,或者说你想要移除的这个版本,即出错的版本,你不想要它(PS:当然,也适用于其他场景,这个是新手向))

git revert 8e6eec20547aa093617ae1e3e8da1f94ca8f0fd7

(这个是参考视频截图,刚刚执行的那个终端已经翻不出来了) image.png

出现当前代码即为 revert 成功

点击键盘 I(i) 键

出现

image.png

开始编辑

修改

image.png

之后 Esc 键退出

image.png

后输入

:wq

image.png 回车

出现类似以下代码即为成功

image.png

同样,这些改动依旧是在本地,依然需要push推送 只不过普通推送即可

image.png

查看git lab,错误提交的那次历史也保留了下来,不过经过revert回滚,代码与历史的那次代码相同

image.png

这次讲解是真的细,也是真的慢,敲了一个小时,不过可以帮助到新人我很开心,因为再牛逼的程序员也是新人慢慢过来的,有迷茫,有难过,但是要加油哦~❤