讲师中心 微信公众号
AI工具推荐 视频效率加速

Git将当前分支修改暂存并切换分支方法

梦雪小哥_6660

梦雪小哥_6660

发布时间:2026-08-12 10:36:27

|

985人浏览过

|

来源于php中文网

原创

git stash 命令用于临时保存工作区和暂存区的全部未提交变更,不创建新提交、不影响 HEAD,仅将修改压入栈中,便于安全切换分支;恢复时可用 git stash apply 或 pop,支持指定索引精准应用,并需手动处理冲突。

git将当前分支修改暂存并切换分支方法

git stash 保存当前修改再切分支

直接用 git stash 就能暂存工作区和暂存区的全部未提交变更,包括已 git add 但没 git commit 的内容,也包括未 add 的脏文件。它不会影响 HEAD 指向,也不创建新提交,只是把变更压进一个栈。

常见错误是以为 git checkout 或 git switch 能自动处理冲突修改——其实只要目标分支有同名文件且内容不同,Git 就会拒绝切换,并提示 “error: Your local changes to the following files would be overwritten…”。

  • git stash 后再 git switch feature/login 就能无阻碍切换
  • 如果只想暂存已 add 的部分(保留未 add 的改动),用 git stash --keep-index
  • 想同时记录 stash 的用途,加 -m "fix login timeout",后续用 git stash list 可读性更强

git stash pop 恢复时遇到冲突怎么办

执行 git stash pop 本质是先 git stash apply 再 git stash drop。如果恢复时发生冲突,Git 不会自动中止,而是把冲突标记写进文件(如 <<<< HEAD),同时保留 stash 记录——也就是说,pop 失败后,stash 还在栈里,可以手动解决完再 git stash drop。

容易踩的坑是:误以为 pop 失败就丢了改动,其实 stash 没被删;更危险的是不检查冲突标记,直接 git add . && git commit,把冲突块一起提交了。

GitHub Actions Deploy Risk Audit
GitHub Actions Deploy Risk Audit

通过评估失败率、未解决的连续失败和上次成功部署以来的时间,审计GitHub Actions运行的部署工作流风险。

下载
  • 先运行 git status 看哪些文件 CONFLICTED
  • 编辑冲突文件,删掉 <<<</====/>>>> 标记,保留正确逻辑
  • 确认无误后 git add <file>,再 git stash drop(别用 pop 重试)

多个 stash 如何精准应用某一条

git stash 是栈结构,git stash pop 默认操作栈顶(stash@{0})。但实际开发中常有多个临时改动堆叠,比如:先 stash A → 切分支修 bug → 回来又 stash B → 想只恢复 A。

这时候不能只靠 pop,得用带索引的 apply:

  • 查列表:git stash list 输出类似 stash@{0}: On main: fix api timeout
  • 应用第 2 条:git stash apply stash@{1}(注意索引从 0 开始)
  • 应用后不删除该 stash,要清理才手动 git stash drop stash@{1}
  • 如果想“取出并删”,没有内置命令,只能 apply + drop 两步走

git switch --discard-changes 强制丢弃修改切分支(慎用)

当确定不需要当前所有修改,想快速干净切换时,git switch -c new-branch --discard-changes 或 git switch main --discard-changes 可跳过 stash 步骤。但它会**不可逆删除工作区和暂存区所有未提交变更**,连刚写的几行调试代码也没了。

这个选项适合本地实验性代码、生成器脚本输出等明确可丢的内容。线上协作中,只要不确定是否还要用,就别碰 --discard-changes。

  • 它不适用于已 git add 的文件——add 过的变更仍会被丢弃,且无提示
  • 相比 git checkout -f,git switch 更安全,但 --discard-changes 本质上就是强制覆盖
  • 真正保险的做法仍是 git stash && git switch,哪怕多敲两个词
stash 是 Git 里最常被低估的机制之一;很多人卡在切换分支报错,第一反应是删文件或硬 reset,其实只需要一行 git stash。但要注意:stash 不跨仓库同步,也不进 reflog,一旦 drop 就真没了。

热门AI工具

更多
二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

相关专题

更多
自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

5259

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

1600

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

934

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3437

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3101

2024.04.09

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

160

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

80

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

80

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

40

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git版本控制工具
Git版本控制工具

共8课时 | 1.8万人学习

Git教程(60分钟全程无废话版)
Git教程(60分钟全程无废话版)

共5课时 | 2.1万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn