---
url: https://eoht.net/fe/git/reset.md
description: 学习如何使用 Git 进行版本回退，恢复历史提交版本，解决代码问题。
---

# Git 版本回退 恢复历史版本 Git 回退操作 {#git-history-rollback-guide}

| 命令     | 特点                                                             |
| -------- | ---------------------------------------------------------------- |
| `reset`  | 该命令会强行覆盖当前版本和要回退的版本之间的其他版本（不太建议） |
| `revert` | 再当前版本的基础上新增一个版本，不影响以前的代码                 |

## reset 的使用方法 {#git-reset-method}

### 查看版本，确定要回退的时刻 {#find-git-revision-to-reset}

```sh
git log
git log --pretty=oneline
```

### 回退操作 {#perform-git-reset}

```sh
git reset --hard （目标版本号）
```

### 在回退成功后，又想回到回退之前的状态，则需要使用指令查看历史提交信息 {#recover-state-before-git-reset}

```sh
git reflog
```

### 强制提交到远程 {#force-push-reset-history}

```sh
git push -f origin <branch name>
```

## revert 的使用方法 {#git-revert-method}

```sh
git log 查看版本号
git revert -n (版本号)
```

:::tip
这里可能会出现冲突，那么需要手动修改冲突的文件

然后就正常的提交流程就可以了，会生成一个新的版本在最新，不会影响到以前的版本
:::

### 提交到远程 {#push-revert-commit}

```sh
git push origin <branch name>
```

## Git 学习路径 {#git-learning-path}

如果目标是整理多个提交而非单纯回退，先查看 [Git 合并与精简提交](/fe/git/commit)；需要重建分支提交记录时，继续阅读 [Git 重置提交记录](/fe/git/reset-commit)。
