当前位置:首页 > 文章列表 > 文章 > 软件教程 > GitHub Desktop 怎么撤销最近一次未推送的提交

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

来源:17golang原创 2026-09-08 18:58:55 0浏览 收藏

在 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删除
Go http.Client 怎么为不同请求设置不同超时Go http.Client 怎么为不同请求设置不同超时
上一篇
Go http.Client 怎么为不同请求设置不同超时
Go time.Time 比较日期时为什么应该用 Equal 而不是 ==
下一篇
Go time.Time 比较日期时为什么应该用 Equal 而不是 ==
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    29次使用
  • SuperCLUE中文大模型评测基准:功能、能力维度与应用指南
    SuperCLUE
    SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
    182次使用
  • C-Eval中文评测基准:大语言模型多学科能力评估指南
    C-Eval
    深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
    120次使用
  • AI Prompt Library:免费AI提示词库,助力ChatGPT高效创作与营销
    AI Prompt Library
    探索AI Prompt Library免费资源库,涵盖营销、写作及多场景AI提示词。兼容ChatGPT、Claude等工具,一键复制优化输出,提升工作效率。
    46次使用
  • Generrated:DALL·E 2/3 AI绘画提示词灵感库与图像对比平台
    Generrated
    Generrated汇集9300+张DALL·E生成图像及对应提示词,支持查看完整图集、对比DALL·E 2与3版本差异,是AI绘图新手学习Prompt设计与获取创作灵感的实用工具。
    27次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码