# 撤销提交

URL: https://caijiao.org/git/history/undo
Source: docs/git/history/undo.md
Description: 本章讲解如何撤销 Git 中的提交操作，包括修改最后一次提交、回退版本和删除错误提交，保障开发过程的可控性。

在实际开发中，提交后可能会发现信息错误或操作失误，Git 提供了多种方式撤销提交。

## 修改上一次提交信息

如果只是想修改刚刚提交的注释内容：

```bash
git commit --amend
```

此命令会打开编辑器，允许修改提交说明，也可以添加暂存的新变更。

## 回退提交但保留改动

使用 `reset` 回退到上一个版本，但保留工作区文件：

```bash
git reset --soft HEAD~1
```

或：

```bash
git reset --mixed HEAD~1
```

`--mixed` 会取消暂存但保留工作区。

## 回退并丢弃改动

```bash
git reset --hard HEAD~1
```

此操作会删除最近一次提交和相关改动，谨慎使用！

## 删除远程错误提交

如需强制将本地回退同步到远程：

```bash
git push --force
```

⚠️ 这会覆盖远程分支，请确认没有影响他人协作。

理解撤销机制，有助于更灵活地控制版本历史，降低出错成本。
