git回滚操作系列

准备工作

  • 本地环境
  • 线上环境
  • 分支 master

场景1

  • 线上环境当前与本地一致
    git回滚操作系列-LMLPHP
    git回滚操作系列-LMLPHP
  • 先把线上回滚至早期
获取提交日志
[root@root]# git log 

git回滚操作系列-LMLPHP

回滚到指定版本
[root@root]# git reset --hard e6d68bc72be4d364fa37af95d2d3693dc06ccecf

git回滚操作系列-LMLPHP

  • 回到本地代码可发现,git pull了之后本地分支的代码没有变化,这是因为线上的分支只是回滚了,但是没有推送到远程分支,只是在线上的本地分支有修改,这个时候需求去线上推送到远程分支
    git回滚操作系列-LMLPHP
  • 线上环境推送远程分支
    git回滚操作系列-LMLPHP
    此时可以发现只是通过git push推送的分支并不能直接推送到远程分支,原因是因为当前分支因为回滚了操作属于旧分支,而远程分支是比较新的,所以需要强制推送
[root@root]# git push -f

git回滚操作系列-LMLPHP

  • 回到本地环境拉取代码
    git回滚操作系列-LMLPHP
    此时还是没有变化,需要在本地强制拉取
git fetch --all
git reset --hard origin/master

git回滚操作系列-LMLPHP


场景2

  • 本地回滚代码
回滚到指定版本
git reset --hard e6d68bc72be4d364fa37af95d2d3693dc06ccecf

git回滚操作系列-LMLPHP

  • 本地强制提交
git push -f 

git回滚操作系列-LMLPHP

  • 线上拉取
    git回滚操作系列-LMLPHP

11-22 16:27