git图形可视化工具:sourcetree 恢复代码到上一版本 作者:马育民 • 2026-07-19 11:15 • 阅读:10006 # 说明 有时候,我们用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 恢复到上一个版本、恢复到指定版本](https://www.malaoshi.top/show_1IX3ItdLireT.html "git教程-git reset 恢复到上一个版本、恢复到指定版本") # 操作 按照下图操作: [](https://malaoshi.top/upload/0/0/1GW3hiZwazfk.png) 弹出窗口,如下: [](https://malaoshi.top/upload/0/0/1GW3hihw9O6N.png) 点击【确定】后,暂存区、版本库就恢复到该版本了 # 使用模式 [](https://malaoshi.top/upload/0/0/1GW3hic6waEz.png) 使用模式分以上三种,对应 `git set` 的三个参数:`soft`、`mixed`、`hard`,对应解释: |使用模式|git参数 |工作目录 |暂存区(index) |版本库(head) | | ------------ | ------------ | ------------ | ------------ | ------------ | |软合并|`--soft` |不变 |不变 |恢复指定版本 | |混合合并|`--mixed` 或不写 |不变 |恢复指定版本 |恢复指定版本 | |强行合并|`--hard` |恢复指定版本 |恢复指定版本 |恢复指定版本 | **注意:** `--hard` 慎用,工作区的代码也会恢复 原文出处:http://www.malaoshi.top/show_1GW3hijPxuDR.html