登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
23
Star
192
Fork
47
yanleweb
/
interview-question
代码
Issues
1091
Pull Requests
0
Wiki
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
介绍一下 git stash【热度: 386】
待办的
#ICVM3E
yanleweb
拥有者
创建于
2025-08-31 18:09
**关键词**:git stash `git stash` 是 Git 中一个非常实用的命令,用于**临时保存工作区和暂存区的修改**,让你可以在不提交当前变更的情况下,切换到其他分支或进行其他操作,之后还能恢复这些临时保存的变更。 ### 核心作用 当你正在一个分支上开发,突然需要切换到其他分支(比如修复紧急 Bug),但当前工作还没完成不想提交时,`git stash` 可以: - 把工作区和暂存区的所有修改(包括新增、修改、删除的文件)暂存到一个“栈”中 - 让工作区回到最近一次提交的干净状态(与 `git reset --hard HEAD` 效果类似,但变更被临时保存了) - 之后可以随时从“栈”中恢复这些变更,继续之前的工作 ### 常用命令 1. **暂存当前变更** ```bash git stash # 或添加描述(推荐,方便区分多个stash) git stash save "描述信息:例如「首页导航栏修改」" ``` 执行后,工作区会恢复到干净状态,变更被存入 stash 栈。 2. **查看所有暂存的变更** ```bash git stash list ``` 输出类似: ``` stash@{0}: On feature/login: 修复登录按钮样式 stash@{1}: On develop: 临时添加调试日志 ``` `stash@{n}` 是每个暂存的唯一标识,`n` 越小表示越新。 3. **恢复暂存的变更** - 恢复最新的 stash(`stash@{0}`),且保留 stash 记录: ```bash git stash apply ``` - 恢复指定的 stash(例如 `stash@{1}`): ```bash git stash apply stash@{1} ``` - 恢复最新的 stash 并删除该 stash 记录(推荐用完即删的场景): ```bash git stash pop ``` 4. **删除暂存的变更** - 删除最新的 stash: ```bash git stash drop ``` - 删除指定的 stash: ```bash git stash drop stash@{1} ``` - 删除所有 stash: ```bash git stash clear ``` 5. **查看 stash 中的具体修改** 查看最新 stash 与当前工作区的差异: ```bash git stash show ``` 查看详细差异(显示具体修改的内容): ```bash git stash show -p ``` ### 注意事项 - `git stash` 只会暂存**已跟踪文件**(即已被 Git 管理的文件)的修改,以及**已添加到暂存区的新增文件**。未跟踪的全新文件(未执行过 `git add`)不会被暂存,需要先执行 `git add` 或使用 `git stash -u`(`-u` 表示包括未跟踪文件)。 - 恢复 stash 时,如果当前工作区有修改,可能会出现冲突,需要手动解决。 - stash 存储在本地仓库,不会被推送到远程,切换电脑后无法获取。 简单来说,`git stash` 就像一个“剪贴板”,让你可以临时“剪切”当前工作状态,稍后再“粘贴”回来,非常适合处理多任务切换的场景。
**关键词**:git stash `git stash` 是 Git 中一个非常实用的命令,用于**临时保存工作区和暂存区的修改**,让你可以在不提交当前变更的情况下,切换到其他分支或进行其他操作,之后还能恢复这些临时保存的变更。 ### 核心作用 当你正在一个分支上开发,突然需要切换到其他分支(比如修复紧急 Bug),但当前工作还没完成不想提交时,`git stash` 可以: - 把工作区和暂存区的所有修改(包括新增、修改、删除的文件)暂存到一个“栈”中 - 让工作区回到最近一次提交的干净状态(与 `git reset --hard HEAD` 效果类似,但变更被临时保存了) - 之后可以随时从“栈”中恢复这些变更,继续之前的工作 ### 常用命令 1. **暂存当前变更** ```bash git stash # 或添加描述(推荐,方便区分多个stash) git stash save "描述信息:例如「首页导航栏修改」" ``` 执行后,工作区会恢复到干净状态,变更被存入 stash 栈。 2. **查看所有暂存的变更** ```bash git stash list ``` 输出类似: ``` stash@{0}: On feature/login: 修复登录按钮样式 stash@{1}: On develop: 临时添加调试日志 ``` `stash@{n}` 是每个暂存的唯一标识,`n` 越小表示越新。 3. **恢复暂存的变更** - 恢复最新的 stash(`stash@{0}`),且保留 stash 记录: ```bash git stash apply ``` - 恢复指定的 stash(例如 `stash@{1}`): ```bash git stash apply stash@{1} ``` - 恢复最新的 stash 并删除该 stash 记录(推荐用完即删的场景): ```bash git stash pop ``` 4. **删除暂存的变更** - 删除最新的 stash: ```bash git stash drop ``` - 删除指定的 stash: ```bash git stash drop stash@{1} ``` - 删除所有 stash: ```bash git stash clear ``` 5. **查看 stash 中的具体修改** 查看最新 stash 与当前工作区的差异: ```bash git stash show ``` 查看详细差异(显示具体修改的内容): ```bash git stash show -p ``` ### 注意事项 - `git stash` 只会暂存**已跟踪文件**(即已被 Git 管理的文件)的修改,以及**已添加到暂存区的新增文件**。未跟踪的全新文件(未执行过 `git add`)不会被暂存,需要先执行 `git add` 或使用 `git stash -u`(`-u` 表示包括未跟踪文件)。 - 恢复 stash 时,如果当前工作区有修改,可能会出现冲突,需要手动解决。 - stash 存储在本地仓库,不会被推送到远程,切换电脑后无法获取。 简单来说,`git stash` 就像一个“剪贴板”,让你可以临时“剪切”当前工作状态,稍后再“粘贴”回来,非常适合处理多任务切换的场景。
评论 (
0
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
web应用场景
未设置
标签管理
里程碑
中
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (1)
标签 (64)
master
0.0.76
0.0.75
0.0.74
0.0.73
0.0.72
0.0.71
0.0.70
0.0.69
0.0.68
0.0.67
0.0.66
0.0.65
0.0.64
0.0.63
0.0.62
0.0.61
0.0.60
0.0.59
0.0.58
0.0.57
0.0.56
0.0.55
0.0.54
0.0.53
0.0.52
0.0.51
0.0.50
0.0.49
0.0.48
0.0.47
0.0.46
0.0.45
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.29
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)
TypeScript
1
https://gitee.com/yanleweb/interview-question.git
git@gitee.com:yanleweb/interview-question.git
yanleweb
interview-question
interview-question
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册