news 2026/1/3 2:22:14

Git - git stash的使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Git - git stash的使用

git stash的作用:

  • git stash作为临时保存工作目录中的修改,而不需要提交这些更改。
  • 将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。
  • stash中的内容不仅仅可以恢复到原先开发的分支,也可以恢复到其他任意指定的分支上。

git stash作用范围:

  • 工作区
  • 暂存区

git stash的使用情况:

  • 切换分支但不想提交当前的工作
  • 紧急修复其它分支的bug
  • 清理工作区以进行其他操作
  • 测试不同的代码版本

git stash的特点:

  • 先进后出,后进先出

git stash的使用

前期准备:在dev分支中创建test1.txt,test2.txt文件,跟踪test1.txt文件(将test1.txt添加到暂存区)

1. 保存当前修改

只保存工作区的修改

  • 作用范围:

    • 工作区中已跟踪文件的修改
    • 暂存区中的修改
    • 不包括:未跟踪的新文件
    • 不包括:被 .gitignore 忽略的文件
# 保存未提交的修改(包括暂存区) # newfile.txt不会被保存 git stash # 添加描述信息 git stash save "描述信息"

包含未跟踪的文件

  • 作用范围:

    • 所有已跟踪文件的修改
    • 暂存区中的修改
    • 未跟踪的新文件
    • 不包括:被 .gitignore 忽略的文件
# 包含未跟踪的文件(新增的文件) git stash -u # 或 git stash --include-untracked

包含所有文件

  • 作用范围:

    • 所有已跟踪文件的修改
    • 暂存区中的修改
    • 未跟踪的新文件
    • 被 .gitignore 忽略的文件
# 包含所有文件(包括被忽略的文件) git stash -a # 或 git stash --all

不同作用范围的对比表格

命令工作区修改暂存区修改未跟踪文件被忽略文件
git stash
git stash -u
git stash -a

2. 查看存储的stash

on dev:后的版本值为上一次提交的版本值

# 查看 stash 列表 git stash list # 输出示例: # stash@{0}: On main: 描述信息 # stash@{1}: On feature: 另一个修改


3. 恢复存储的修改

# 恢复最新的 stash(不删除 stash) git stash apply # 恢复指定的 stash git stash apply stash@{n} # 恢复并删除 stash(推荐) git stash pop # 恢复指定的 stash 并删除 git stash pop stash@{n}

情况一:在当前分支dev下取栈

情况二:切换到另一个分支dev2上取栈


4. 删除stash

# 删除最新的 stash git stash drop # 删除指定的 stash git stash drop stash@{n} # 删除所有 stash git stash clear

常见的面试问题

⭐stash 和 commit 有什么区别?

  • stash:临时保存,没有提交信息,适合临时切换
  • commit:正式提交,有提交历史,适合版本记录

⭐stash 保存到哪里?

  • stash 内容存储在.git/refs/stash.git/logs/refs/stash

⭐stash 会过期吗?

  • 不会,stash 会一直存在直到你删除它

⭐如何恢复已删除的 stash?

  • 可以通过git fsck --unreachable查找,然后使用git show恢复,但比较复杂
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/31 6:20:26

11、Free Haven:匿名存储系统的设计与挑战

Free Haven:匿名存储系统的设计与挑战 在当今数字化时代,数据隐私和安全愈发重要。Free Haven项目致力于设计一个匿名存储系统,以抵抗强大对手查找或破坏存储数据的企图。下面将深入探讨Free Haven的目标、设计、面临的攻击以及与其他系统的比较等方面。 1. Free Haven的目…

作者头像 李华
网站建设 2026/1/1 10:08:05

26、Samba 4 配置与使用指南

Samba 4 配置与使用指南 1. Samba Active Directory 域控制器备份与恢复 在操作 Samba Active Directory 域控制器时,备份和恢复是重要的环节。备份过程中,会对不同分区的对象和链接值进行处理,例如: Partition[DC=linuxaholics,DC=com] objects[97/97] linked_values[…

作者头像 李华
网站建设 2025/12/30 7:35:05

29、网络管理与 FreeIPA 部署全解析

网络管理与 FreeIPA 部署全解析 在网络管理的领域中,掌握有效的工具和技术至关重要。本文将详细介绍 Windows 系统中的 net 实用工具、Linux 系统中的 rdesktop 远程管理工具,以及 FreeIPA 集成安全信息管理解决方案的相关内容。 1. net 实用工具 net 实用工具对于…

作者头像 李华
网站建设 2025/12/29 7:06:33

38、声誉系统的构建与优化

声誉系统的构建与优化 1. 收集评分 在开发声誉系统时,首要问题之一便是如何收集评分。这一问题的答案很大程度上取决于具体领域,但也存在一些跨领域的通用方面。 收集评分的方法主要有以下几种: - 观察活动 :尽可能多地观察活动,并基于这些活动得出结论。对于拥有大…

作者头像 李华
网站建设 2025/12/23 19:14:26

41、声誉服务器:原理、架构与应用

声誉服务器:原理、架构与应用 1. 声誉服务器的使用动机 使用声誉服务器的动机并非仅存在于买家一方。可靠的卖家可能会坚持使用声誉服务器,以便交易能够强化其声誉。 在某些情况下,声誉服务器可能是降低风险的唯一途径。例如,两个实体可能希望以安全的化名方式进行交易,…

作者头像 李华
网站建设 2025/12/27 2:21:04

38、Samba网络维护与故障排除全解析

Samba网络维护与故障排除全解析 1. 网络备份的重要性 在网络运行中,备份是至关重要的一环。在高度集中的客户端/服务器网络里,备份服务器是最为关键的备份任务,因此你需要熟悉Linux的本地备份技术。而在不太集中的网络中,或者当客户端存储了大量自定义数据或其他重要数据…

作者头像 李华