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区)会回退到某个版本,代码会改变。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM