git回滚线上代码

    由于之前自己推代码的时候操作失误,push代码的时候没有push到线上的dev分支,而是push到了线上master分支(主要是因为没有在命令后写分支名,直接推到默认master分支上了),覆盖掉了线上的代码。在搜索解决办法的时候,发现网上给的信息大多不够全,且很多无用。所以在回滚成功之后,写一下关于回滚的文章。

 

1.如果没有push上去,可以用git reset 本地回滚到之前的代码。

 

   git log查看版本号,然后在用git reset + 版本号回滚。

 

2.如果push上去了,已经覆盖了线上的代码,就需要先用git revert + 版本号 或者 HEAD(回到上一个push的版本),将线上的代码回滚

 

  用git push -u origin master:master(可以不写,默认与分支相同) -f 强制提交。如果没有-f gitlab会拒绝你的操作。

 

3.git revert 和 git reset 的区别

  (1)git reset命令 
    1.git reset –mixed + 版本号 
      暂存区(add/index区)和提交区(commit区)会回退到某个版本,但代码不改变。 
    2.git reset –soft + 版本号 
      提交区(commit区)会回退到某个版本,暂存区(add/index区)不会回退,代码不改变。 
    3.git reset –hard + 版本号 

      暂存区(add/index区)和提交区(commit区)会回退到某个版本,代码会改变。(推荐)

  (2)git revert命令 

    git revert + 版本号 
      远程master和本地master都会回退到某个版本。暂存区(add/index区)和提交区(commit区)会回退到某个版本,代码会改变。

posted @ 2018-10-18 17:17  kakawith  阅读(6745)  评论(0编辑  收藏  举报