# 用于在 GitHub Desktop 中管理提交的选项

你可以使用 GitHub Desktop 来维护易于遵循的提交历史记录。

## 关于 GitHub Desktop 中的提交历史记录

在对存储库进行更改时，提交历史记录应讲述一个易于遵循的故事，说明你是如何完成所做更改的。 为了帮助人们查看你的工作，并使他们更容易地找到何时以及为什么在存储库中引入更改，我们建议你遵循最佳做法，例如：

* 将提交组织成有序且易于遵循的顺序
* 编写明确的提交消息，包括你的意图和任何必要的上下文
* 进行包含相关更改的小提交

通常，在进行更改时，很难完美地遵循这些最佳做法。 你可能意识到需要撤消所提交的更改、编辑提交消息或重新排序提交，以讲述更清晰的故事。 使用 GitHub Desktop，可以直接从用户界面管理提交历史记录。

> \[!NOTE]
> 在可能的情况下，应避免更改已推送到远程存储库的提交历史记录。 其他参与者可能已经基于这些提交内容开展了自己的工作。

## 用于管理 GitHub Desktop 中的提交历史记录的选项

| 选项                                                                                               | 说明                                                                                | 详细信息 |
| ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- | ---- |
| 撤消提交                                                                                             | 将提交中的更改还原到工作目录，以便在重新提交之前进行进一步更改。 如果您在所包含的更改中犯了错误，这个功能会很有帮助。 如果已将提交推送到远程存储库，则无法使用。 |      |
| [在 GitHub Desktop 中撤消提交](/zh/desktop/managing-commits/undoing-a-commit-in-github-desktop)        |                                                                                   |      |
| 重置提交                                                                                             | 类似于撤消提交，但这会将所有提交中所做的更改还原到所选的工作目录提交。 只能用于已推送到远程存储库的最近提交。                           |      |
| [在 GitHub Desktop 中重置提交](/zh/desktop/managing-commits/resetting-to-a-commit-in-github-desktop)   |                                                                                   |      |
| 修改提交                                                                                             | 允许编辑最新的提交消息或将新更改与最新的提交合并。 如果上一个提交中的更改仍然有效，而您又做了可以归入同一提交的进一步修改，那么这就很有用。            |      |
| [在 GitHub Desktop 中修改提交](/zh/desktop/managing-commits/amending-a-commit-in-github-desktop)       |                                                                                   |      |
| 还原提交                                                                                             | 创建一个新的提交，以反转历史记录中另一个提交的更改。 如果已将提交推送到远程存储库，并且不希望从存储库的历史记录中删除提交，则此功能很有用。            |      |
| [在 GitHub Desktop 中还原提交](/zh/desktop/managing-commits/reverting-a-commit-in-github-desktop)      |                                                                                   |      |
| 挑拣提交                                                                                             | 将提交从一个分支复制到另一个分支。 如果你不小心在错误的分支上提交了更改，或者你需要在你正在处理的不同分支上应用错误修复，这很有用。                |      |
| [在 GitHub Desktop 中优选提交](/zh/desktop/managing-commits/cherry-picking-a-commit-in-github-desktop) |                                                                                   |      |
| 将提交重新排序                                                                                          | 更改历史记录中提交的顺序。 如果更改顺序会使进度更易于跟进，则此功能很有用。                                            |      |
| [在 GitHub Desktop 中重新排序提交](/zh/desktop/managing-commits/reordering-commits-in-github-desktop)    |                                                                                   |      |
| Squash 提交                                                                                        | 将多个提交合并为一个提交。 如果你有一系列包含相关更改的小提交，则此功能很有用。                                          |      |
| [在 GitHub Desktop 中压缩提交](/zh/desktop/managing-commits/squashing-commits-in-github-desktop)       |                                                                                   |      |