前言

 在我们开发过程中,因各种原因,避免不了将业务代码回滚至指定版本,或者具体一些到某次commit。
下面我们将具体步骤及具体实现做分析。

操作前阅读

  在代码回归操作过程中主要 围绕 git reset 命令进行,该命令会把版本库和工作目录改变为已知状态。具体来讲,git reset 调整 HEAD 引用指向指定的提交,默认情况下还会更新索引以匹配该提交。根据需要,git reset 命令也可以修改工作目录以呈现指定提交代表的项目修订版本。

  • git reset 命令有三个主要选项

  • --soft
      会将 HEAD 引用指向指定提交。索引和工作目录的内容保持不变。这个版本的命令有“最小”影响,只改变一个符号引用的状态使其指向一个新提交。

  • --mixed
      会将 HEAD 指向指定提交。索引内容也跟着改变以符合指定提交的树结构,但是工作目录中的内容保持不变。这个版本的命令将索引变成你刚刚暂存该提交全部变化时的状态,它会显示工作目录中还有什么修改。–mixed 是 git reset 的默认模式。

  • --hard
      这条命令将 HEAD 引用指向给定提交。索引的内容也跟着改变以符合给定提交的树结构。此外,工作目录的内容也随之改变以反映给定提交表示的树的状态。当改变工作目录的时候,整个目录结构都改成给定提交对应的样子。做的修改都将丢失,新文件将被删除。在给定提交中但不在工作目录中的文件将恢复回来。

具体步骤

 一般情况下,我们分为三个步骤就可以解决完代码回滚操作

第一步

  • 执行 git log命令查看日志,获取需要回退的版本号
    例如:

第二步

执行 git reset –-soft ,如 git reset –soft 4f5e9a90edeadcc45d85f43bd861a837fa7ce4c7 ,重置至指定版本的提交

第三步

执行 git push -f origin 强制提交当前版本号

  • >··< 此时恭喜你,你的代码回滚成功了