git回滚操作系列
准备工作
本地环境线上环境分支 master场景1
线上环境当前与本地一致线上环境回滚,同步线上与本地操作
先把线上回滚至早期
获取提交日志[root@root]# git log
回滚到指定版本[root@root]# git reset --hard e6d68bc72be4d364fa37af95d2d3693dc06ccecf
回到本地代码可发现,git pull了之后本地分支的代码没有变化,这是因为线上的分支只是回滚了,但是没有推送到远程分支,只是在线上的本地分支有修改,这个时候需求去线上推送到远程分支 线上环境推送远程分支
此时可以发现只是通过git push推送的分支并不能直接推送到远程分支,原因是因为当前分支因为回滚了操作属于旧分支,而远程分支是比较新的,所以需要强制推送
[root@root]# git push -f
回到本地环境拉取代码
此时还是没有变化,需要在本地强制拉取
git fetch --allgit reset --hard origin/master
场景2
本地回滚代码,同步线上与本地操作
本地回滚代码
回滚到指定版本git reset --hard e6d68bc72be4d364fa37af95d2d3693dc06ccecf
本地强制提交
git push -f
线上拉取