登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

GitHub Desktop 怎么撤销最近一次未推送的提交

来源:17golang原创

时间:2026-09-08 18:58:55 416浏览 收藏

在 GitHub Desktop 里,最近一次提交还没有推送到远程时,可以直接撤销它。打开左侧的 Changes 标签,在底部点击 Undo,分支会回到上一个提交,而这次提交里的文件改动会重新回到工作区,方便你检查后重新提交。这个动作不是删除文件,关键是把“提交记录”退回,把“改动内容”留下。

要点速览
  • 只针对最近一次尚未推送的本地提交,入口在 Changes 页面底部。
  • 撤销后先看 History 和文件差异,确认改动仍在工作区。
  • 已推送的提交不要找 Undo,应根据目标选择 Revert Changes in CommitReset to commit

GitHub Desktop 撤销提交前,先确认它还没有推送

先打开目标仓库,查看顶部仓库栏里的仓库名称和 Current Branch。这一步看似简单,却能避免在错误分支上回退。接着点击左侧的 Changes,确认要处理的是刚刚完成的那笔本地提交,并留意页面是否仍显示可推送状态。

如果这笔提交已经通过 Push origin 发到远程,通常不会再出现适用于本地撤销的 Undo 入口。GitHub 官方文档也把撤销限制在尚未推送到远程分支的提交上,因为其他协作者可能已经基于它继续工作。

GitHub Desktop Changes 标签显示 Current Branch、未推送提交和底部 Undo 入口的原创软件界面状态图
图1:在 Changes 标签确认当前分支和未推送提交,再从左侧底部进入 Undo。

按 Changes → Undo 撤销最近一次本地提交

确认分支和提交都正确后,保持在 Changes 标签,点击左侧栏底部的 Undo。GitHub Desktop 会把当前分支指针移回上一个提交,同时把被撤销提交包含的文件变化重新放回工作区。

这里先不要把“撤销提交”和“丢弃改动”混为一谈。Undo 处理的是提交记录;回到 Changes 后,文件仍然会以未提交改动的形式出现。只要不继续点击丢弃改动之类的操作,原来的内容就还在。

Undo 后检查工作区,再决定是否重新提交

撤销完成后,先回看 History,确认最新位置已经回到前一个提交;再回到 Changes,逐个查看文件列表和差异。尤其要检查原提交里是否混入了不该一起提交的文件,必要时取消文件勾选或修改内容。

确认差异无误后,在底部 Summary 字段重新写清提交目的,再执行提交。新的提交完成后,最后才点击 Push origin。这样既修正了本地提交,又不会把尚未检查的内容直接推到远程。

看到的状态下一步不要做什么
Undo 可见,提交未推送点击 Undo,再检查 Changes不要先丢弃工作区改动
提交已推送到远程需要保留历史时使用 Revert Changes in Commit不要为了回退而直接改远程历史
要回退多个连续本地提交在 History 中选择目标提交并使用 Reset to commit不要把 Reset 当成单次 Undo
GitHub Desktop Undo 后 History 回到上一个提交且 Changes 显示恢复文件和 Summary 字段的原创软件界面状态图
图2:Undo 完成后,History 回到上一个提交,原改动重新出现在 Changes 中等待检查。

常见问题

点击 Undo 会把代码文件删除吗?

不会。它会撤销最近一次本地提交,并把提交中的变化放回工作区;是否保留这些变化,取决于你之后有没有主动丢弃它们。

为什么我的 GitHub Desktop 没有 Undo?

先检查当前是不是 Changes 标签,再确认最近一次提交是否已经推送。已推送的提交通常应改用撤销提交产生新提交的方式,而不是本地 Undo。

想撤销多个提交应该怎么做?

如果目标是多个连续的本地提交,在 History 中右键目标提交并选择 Reset to commit。它会把所选提交之后的变化一起放回工作区,操作前要先确认范围。

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>