• 【git】代码回退指定commit


     【注意:如果提交的错误代码较少,可以在本地修改成 commit之前的正确代码样子,然后再提交一次即可。不用麻烦的操作回滚。

    开发人员错误将代码提交到gitlab的远程dev分支,回滚方法如下:

    1、本地回滚

    进入git bash,进入该工程目录:

    leichen@N MINGW64 ~
    $ cd c:
     
    leichen@N-5C MINGW64 /c
    $ cd git_home
     
    leichen@N-5C MINGW64 /c/git_home
    $ cd zntp
     
    leichen@N-5C MINGW64 /c/git_home/zntp (dev)
    $ git log
    commit 095d0ada370c32ace4fd2ebcd4372beea9a64f77
    Author: MirGao <Mir_Gao15517374303@163.com>
    Date:   Fri Nov 23 16:50:28 2018 +0800
     
        实现接口数量7个
     
    commit b8b9fa09775a511d522e584a3be6817c9de7e43b
    Author: PC-20180625CLEKAdministrator <18510942269@163.com>
    Date:   Mon Oct 15 14:58:07 2018 +0800
     
        bug修改

    确认回滚到版本“commit” = b8b9fa09775a511d522e584a3be6817c9de7e43b,bug修改;操作方法如下:

    leichen@N-5CG724557J MINGW64 /c/git_home/***** (dev)
    $ git reset --hard b8b9fa09775a511d522e584a3be6817c9de7e43b
    HEAD is now at b8b9fa0 bug修改

    切换分支: git checkout dev

    至此版本回退完毕,但是此时如果提交到远程,注意:这只是本地撤消,如果已经push到服务器了,则此操作只回退了本地,服务器不受影响,下次git push要求先运行git pull,又将服务器的merge记录下载到本地了。其实不能达到远程回退的要求。

    2、远程回退

    登陆gitlab服务器,进入项目对应的目录底下操作。此操作相当危险,在操作一定要先将相应项目的目录整个打包备份;然后进入到项目文件夹中操作:

    cd /data/gitlab/repositories/alibaba/*******.git
    git checkout dev 
    #此时会报错:fatal: This operation must be run in a work tree 
    #原因在于:git配置了环境变量,命令无法识别到作用的工程名称,所以需要加上--work-tree参数
    git --work-tree=/data/gitlab/repositories/alibaba/zntp.git reset 
    --hard b8b9fa09775a511d522e584a3be6817c9de7e43b
    HEAD is now at b8b9fa0 bug修改
    #即可实现代码回滚
    #git --work-tree的用法:[--work-tree=<path>]

    远程回退完毕。

  • 相关阅读:
    C#封装(访问修饰符)和方法
    源文件声明规则和import、package
    throw和throws 的区别
    曲率计算
    react组件三大核心属性之一refs;react中的事件处理
    react脚手架,样式模块化
    es6 class类中可以直接写赋值语句
    es6 class类内部的方法自动开启了严格模式
    react脚手架
    react三大核心之一props
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/11880471.html
Copyright © 2020-2023  润新知