git回滚操作系列

git回滚操作系列

准备工作

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

场景1

线上环境回滚,同步线上与本地操作

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

git回滚操作系列

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

git回滚操作系列

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

git回滚操作系列

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

git回滚操作系列


场景2

本地回滚代码,同步线上与本地操作
git回滚操作系列
git回滚操作系列

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

git回滚操作系列

  • 本地强制提交
git push -f  

git回滚操作系列

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

发表评论

评论已关闭。

相关文章