git回滚线上代码
Posted kakawith
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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区)会回退到某个版本,代码会改变。
以上是关于git回滚线上代码的主要内容,如果未能解决你的问题,请参考以下文章