Loading... # Git Stash 用法完全指南 ## 📦 核心作用 临时存储未提交的修改(包括工作目录和暂存区),让工作区恢复到干净状态 --- ## 🛠️ 基础命令速查表 ### 保存当前修改 ```bash git stash save "修改备注" # 推荐!添加描述性信息 git stash # 快速保存(自动生成备注) ``` ### 查看存储列表 ``` git stash list # 输出示例: # stash@{0}: On main: 支付模块优化 # stash@{1}: On dev: 订单页样式调整 ``` ### 恢复存储 ``` git stash apply # 恢复最新存储(保留stash记录) git stash apply 'stash@{1}' # 恢复指定存储 git checkout "stash@{1}" -- index.html #恢复指定缓存指定文件 git stash pop # 恢复最新并删除记录 ``` ### 删除存储 ``` git stash drop stash@{0} # 删除指定存储 git stash clear # 清空所有存储 ``` ## 🔍 高阶用法 ### 包含未跟踪文件 ``` git stash save -u # 包含未跟踪文件(重要!) git stash save --include-untracked ``` ### 选择恢复部分文件 ``` git checkout stash@{0} -- src/apis/user.js # 仅恢复某个文件 ``` ### 从存储创建分支 ``` git stash branch new-feature # 基于最新存储创建分支 git stash branch fix-bug stash@{1} # 基于指定存储创建 ``` ## 🎯 典型使用场景 ### 场景1:紧急修复生产问题 ``` # 正在开发新功能时收到紧急bug报告 git stash save "用户模块优化进度" git checkout hotfix/20231101 # 修复并提交后... git checkout feature/user git stash pop ``` ### 场景2:临时切换分支测试 ``` # 当前分支有未完成修改,需要测试其他分支 git stash git checkout test-branch # 测试完成后返回 git checkout original-branch git stash pop ``` ### 场景3:保存实验性代码 ``` # 临时尝试高风险修改前 git stash save "实验性缓存方案" # 测试失败后回退 git stash show -p | git apply -R # 反向应用修改(手动撤销) ``` ## 📊 可视化操作流程 ``` 原始状态: [Working] --修改--> [Staged] \__________________未提交修改/ 执行 stash: [Stash@{0}] 保存修改 [Working] 恢复干净状态 执行 pop: [Stash@{0}] --> 应用到当前工作区 ``` ## ⚠️ 注意事项 1. **未跟踪文件**:默认不保存,必须使用 `-u` 参数 2. **冲突处理**:恢复时出现冲突需手动解决 3. **长期存储风险**:建议 stash 保留不超过1周 4. **安全删除**:确认不再需要后再执行 `drop`/`clear` --- ## 💡 实用技巧 1. 结合 `git stash show -p` 查看存储差异 2. 使用 `gitk --all $(git stash list | cut -d":" -f 1)` 图形化查看 3. 通过 `git stash store` 手动管理存储内容(高级) 4. 在 `.gitconfig` 添加别名加速操作: ``` [alias] sts = stash --include-untracked stl = stash list sta = !git stash apply ``` ## 🚨 常见问题 ### Q:如何找回误删的 stash? A:通过 `git fsck` 查找 dangling commit,但成功率取决于GC情况 ### Q:多个 stash 如何区分? A:保存时务必添加描述,例如: ``` git stash save "[高优先级]支付接口调试" ``` ### Q:部分恢复后出现冲突怎么办? A:手动编辑冲突文件后执行: ``` git add 冲突文件 git restore --staged . # 或继续其他操作 ``` 最后修改:2025 年 03 月 27 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏