zoukankan      html  css  js  c++  java
  • 回滚代码

    工作中我们时常会遇到回滚代码的需求

    分两种情况,push上去了,和没有push(只是commit/add了)

    如果没有push上去,命令是 git reset,如果push上去了使用git revert

    git reset 的功能是回退本地的代码,并不会改变线上的代码,git reset 有3个参数可用

    1.git reset --mixed +版本号    暂存区(add区)和提交区(commit区)会回退到某个版本,本地的代码不会改变。

    2.git reset --soft +版本号      提交区(commit区)会回退到某个版本,暂存区(add区)不会回退,本地代码不变。

    3.git reser --hard +版本号     暂存区(add区)和提交区(commit区)会回退到某个版本,本地的代码会改变。

    git revert 的功能是回退线上代码

    git revert +版本号 -》输入commit的message,生成一个新的commit,-》push 覆盖线上的版本

    这样就完成了线上版本的回退

    git revert 的快捷命令

    git revert HEADE  回退到上一次提交的版本

    git revert HEADE^ 回退到上上次提交的版本

    下面介绍用命令行回滚和用sourceTree回滚代码

    我在工作中使用sourceTree工具,如果想把本地代码重置到某一次提交,可以在想回到的版本的位置右键,选择右键菜单中的‘将xxx重置到这次提交’,

     

    在提示框中点击确定,此时本地仓库中的代码回退到了选中的版本中,也就相当于commit之前,然后在‘文件状态中’出现了你的本地代码和本地仓库中的代码不同的部分,也就相当于你现在在本地代码中修改的部分。

    分支旁边也会出现箭头

    向下的箭头表示你本地的代码和线上仓库中的代码有7处差别

    此时如果想放弃本地代码的更改,使用线上仓库的代码版本,可以选中文件,右键,在右键菜单中选择‘重置’

    在弹出的确认框中点击确定,此时就放弃了你本地代码的更改,现在‘拉取’线上代码

     

    就会同步线上仓库的代码到本地,此时本地仓库的代码和线上仓库就版本一致了。

    命令行的回滚 git reset --hard 465dd43

    在分支旁边显示和线上版本的差距,此时‘拉取’,就会同步本地的代码为线上代码的版本。

    以上这些都是适用于coomit之后,push之前,想回退commit的内容的场景,线上仓库的代码版本是没有回退的,回退的只是本地仓库的版本

    如果想回滚线上仓库的版本怎么办呢?

    先说命令行的方式 git revert +版本号 意思是回退xxx版本提交的修改,也只会回退xxx版本提交的修改,如果最新版本和xxx版本之间还间隔着其他版本的修改,其他版本的修改是不会回退的。

    如果回退的时候出现冲突,如下图,需要手动解决冲突,再commit

    之后执行git push ,完成线上版本的回退

    再来看sourceTree,在想要回滚的版本位置右键-选择提交回滚,如果有冲突需要手动解决,然后push,完成线上版本的回退

     

    有点啰嗦地整理完了,希望对日后地工作有帮助

  • 相关阅读:
    调试PHP如何让浏览器提示错误
    接口的理解
    linux中的curl
    linux后台执行命令:&和nohup
    php定界符<<<EOF讲解
    有关字符集问题
    设置disabled属性
    PHP魔术常量
    phpstorm-有关设置
    php常用函数
  • 原文地址:https://www.cnblogs.com/lijianjian/p/9636339.html
Copyright © 2011-2022 走看看