git图形可视化工具:sourcetree 恢复代码到上一版本

说明

有时候,我们用Git的时候有可能commit提交代码后,发现这一次commit的内容是有错误的,那么有两种处理方法:

  1. 修改错误内容,再次commit一次
  2. 使用 git reset 命令撤销这一次错误的commit

第一种方法简单,但会多次一次commit记录。
第二种方法更好,错误的commit没必要保留下来

注意:该命令是操作本地库,无法对远程库进行操作

应用场景

  • 该命令是操作本地库,无法对远程库进行操作,所以适合 还没有提交到远程库 的情况

  • 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

不适合情况

  • 提交到远程库后,不适合使用本命令
  • 有些公司要求不准使用本命了

提交到远程库后,不适合使用本命令的 例子:

本地库版本记录:A -> B -> C -> D
远程库版本记录:A -> B -> C -> D

执行命令后,本地库删除上一次提交,如下:

A -> B -> C

但远程库没变,所以会造成本地库与远程库不一致的情况

如果用 git push 推送会报错,因为本地库 HEAD 指向的版本比远程库的要旧

要 强制推送:

git push -f

git原理

详见:git教程-git reset 恢复到上一个版本、恢复到指定版本

操作

按照下图操作:

弹出窗口,如下:

点击【确定】后,暂存区、版本库就恢复到该版本了

使用模式

使用模式分以上三种,对应 git set 的三个参数:soft、mixed、hard,对应解释:

使用模式 git参数 工作目录 暂存区(index) 版本库(head)
软合并 --soft 不变 不变 恢复指定版本
混合合并 --mixed 或不写 不变 恢复指定版本 恢复指定版本
强行合并 --hard 恢复指定版本 恢复指定版本 恢复指定版本

注意: --hard 慎用,工作区的代码也会恢复


原文出处:/show_1GW3hijPxuDR.html