当前位置:首页 > 文章列表 > 文章 > 软件教程 > GitHub Desktop 切换分支前怎么暂存未提交修改

GitHub Desktop 切换分支前怎么暂存未提交修改

来源:17golang原创 2026-09-06 09:59:17 0浏览 收藏

在 GitHub Desktop 里切换分支前,如果当前工作区还有不想马上提交的修改,可以先暂存,再去处理另一条分支。最短路径是:打开 Changes,右键变更文件标题,选择 Stash All Changes;任务完成后回到原分支,打开 Stashed Changes,点击 Restore。这样既不会为了切分支制造临时提交,也不会把未完成的代码混到另一条分支。

要点速览
  • 暂存前先确认仓库、当前分支和需要保留的文件都已经保存。
  • Stash All Changes 会把当前未提交修改暂时移出工作区,之后才能安心切换分支。
  • GitHub Desktop 一次只保留一组暂存内容;恢复时必须回到产生这组修改的原分支。

一、先确认当前分支和未提交文件

先看顶部仓库栏的 Current Branch,记住当前分支名称,例如 feature/profile-card。再打开左侧的 Changes,确认列表里的文件确实是这次尚未完成的工作。没有保存到磁盘的编辑内容不会按已保存文件的方式出现在变更列表中,所以先回到编辑器保存文件。

这一步还要排除不想带走的文件。GitHub Desktop 的暂存动作面向当前这组未提交修改,不能把它当成“只暂存某一个勾选文件”的精细分组工具。确认无误后再继续。

二、从 Changes 面板暂存全部修改

Changes 面板中找到变更文件列表上方的标题,例如 2 changed files。右键这个标题,在菜单中选择 Stash All Changes。这个入口不是顶部的提交按钮,也不是分支菜单里的临时选项,操作重点是对变更文件标题打开上下文菜单。

原创 Git 桌面客户端 Changes 面板和 Stash All Changes 菜单状态
图1:在 Changes 面板的变更文件标题上打开菜单,选择 Stash All Changes 暂存当前工作区。

选择后,原来的文件差异会暂时从工作区移开,界面会显示与暂存内容相关的状态,而不是继续列出刚才那两份未提交文件。看到工作区不再显示这组修改,再进行分支切换;如果文件仍然出现在 Changes 列表,先不要切换,重新检查右键目标是否是变更文件标题。

三、切换到需要处理的分支

确认工作区已经清爽后,点击顶部 Current Branch,从分支列表选择临时要处理的目标分支,再点击切换按钮。GitHub Desktop 在存在未提交修改时通常会让你决定保留、带到新分支或先处理修改;现在因为修改已经被 stash,切换的前置冲突就被移除了。

切换后先看一次 Changes,确保临时分支没有出现原分支的文件。完成临时修复、查看代码或提交独立工作后,再按同样的分支入口回到产生这组 stash 的原分支。

四、回到原分支恢复暂存内容

回到原分支后,打开左侧 Changes。如果当前分支对应一组暂存内容,界面会出现 Stashed Changes。点击它查看暂存摘要,再在右侧暂存区域点击 Restore。恢复完成后,原先的文件应该重新回到普通的 Changes 列表,文件差异也可以继续编辑。

原创 Git 桌面客户端 Stashed Changes 和 Restore 恢复状态
图2:回到原分支后打开 Stashed Changes,点击 Restore 让暂存文件重新回到 Changes 列表。

确认文件名和差异内容都回来了,再继续开发或提交。恢复不是提交动作,仓库仍然处于未提交状态;如果此时决定把工作固定下来,还需要填写提交信息并执行正常的 commit。

五、一次暂存只能解决一组临时现场

场景更合适的做法原因
临时离开当前任务几分钟Stash All Changes快速清空工作区,回来后恢复。
需要长期保留或让别人接手提交到专用分支提交有历史记录,也更容易协作。
同时维护多条分支的未完成工作独立分支或 worktree不要把多组现场挤进一次 stash。

尤其要注意,GitHub Desktop 的这个入口一次只能暂存一组修改。新的 stash 可能覆盖你对“多组暂存”的预期,因此需要并行保留多个工作现场时,使用专用分支或 worktree 更稳妥。

相关问题

暂存后能直接切换到任意分支吗?

通常可以,但仍应先确认 Changes 已经清空,并在目标分支检查没有意外的本地修改。恢复时回到产生这组 stash 的原分支,再从 Stashed Changes 执行 Restore

找不到 Stashed Changes 怎么办?

先检查当前分支是不是产生 stash 的原分支,再确认暂存动作确实完成。如果原分支名称记错,先从 Current Branch 逐个确认;如果工作区本来就没有已保存的未提交文件,也不会出现可恢复的暂存内容。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
繁花动漫权限安全吗?包名、敏感权限与安装前核对繁花动漫权限安全吗?包名、敏感权限与安装前核对
上一篇
繁花动漫权限安全吗?包名、敏感权限与安装前核对
Go 泛型函数只从返回值使用类型时为什么推导失败
下一篇
Go 泛型函数只从返回值使用类型时为什么推导失败
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之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推荐
  • SuperCLUE中文大模型评测基准:功能、能力维度与应用指南
    SuperCLUE
    SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
    162次使用
  • C-Eval中文评测基准:大语言模型多学科能力评估指南
    C-Eval
    深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
    88次使用
  • LangGPT提示词框架:结构化Prompt设计方法与开源工具指南
    LangGPT
    LangGPT是一种受编程语言启发的结构化提示词设计工具,提供双层框架、模块化模板及变量功能,帮助用户高效编写高质量Prompt。该项目已在GitHub免费开源,适用于内容创作、编程辅助等多场景。
    12次使用
  • ClickPrompt:AI提示词生成与优化工具,支持Stable Diffusion、ChatGPT及代码辅助
    ClickPrompt
    ClickPrompt是一款专为AI提示词编写者设计的开源在线工具,支持Stable Diffusion绘图、ChatGPT对话及GitHub Copilot代码辅助。提供Prompt自动生成、一键运行、社区分享及可视化优化功能,帮助用户高效获取精准AI输出。
    49次使用
  • PromptHero官网:AI提示词搜索、优化与学习平台,支持Midjourney/Stable Diffusion
    PromptHero
    PromptHero是专业的AI提示词搜索引擎与优化平台,支持Stable Diffusion、Midjourney等主流模型。提供海量提示词库、分类搜索、在线课程及社区互动,助力用户高效生成高质量AI图像与文本。
    32次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码