Git stash

Git stash

git stash

使用背景

Git stash 的使用,一般每次提交都会产生一次 git commit ,但是有的时候本地的功能并不是完整的,我们不希望把这次记录也提交到git分支上,这时候又一个办法就是使用 git stash

使用方法

Git stash : 存储当前stash记录;

git stash apply :返回当前的stash记录;

git stash pop: 删除 git stack中的记录,并且返回到当前 stash 记录;

使用source tree 恢复Stash记录
  1. 找到source tree的侧边栏目录 STASHES -> stashlist 双击按钮,选择 git statsh apply 即可
  2. 通过 Terminal 选择 git 的命令行工具;

参考资料

git stash的使用,点击链接

git stash的恢复,点击链接

<think>我们正在回答用户关于gitstash使用方法的问题。根据引用内容,我们可以总结如下:用户的问题:gitstash使用方法引用内容总结: [1]展示了git stashpush的使用,包括保存指定文件或路径的修改,以及如何取出存储(gitstash applystash@{index})。 [2]说明git stash用于暂存不想提交的代码,以便切换分支等操作。可以使用git stashgitstash save'注释'。[3]总结git stashapply和git stashpop的区别:apply恢复指定版本但不删除stash,pop恢复最近一次并删除stash。 因此,我们需要系统地介绍gitstash的使用方法,包括保存、列出、恢复、删除等操作。 回答结构:1.简介:gitstash的作用2.保存当前工作目录的修改(gitstash,git stashsave,git stashpush)3.列出存储的stashgit stashlist)4.恢复stashgitstash apply, gitstash pop) 5.删除stashgit stashdrop,git stashclear)6.保存指定文件或路径(可选) 7.注意事项注意:引用内容中提到了git stashpush的新语法,以及保存指定文件的方法,需要包含。最后,生成相关问题。</think>### Git Stash 使用方法详解 `git stash` 是 Git 中用于临时保存工作目录修改的强大工具,特别适合以下场景: - 需要切换分支但不想提交未完成的工作 - 需要拉取远程更新但本地有未提交的修改 - 临时保存实验性代码 #### 🗂️ 核心操作步骤 1. **保存当前修改** ```bash git stash # 默认保存所有修改(不包含未跟踪文件) git stash save "添加注释" # 保存并添加描述性注释[^2] git stash push -m "测试新功能" # 新语法(功能同上)[^1] ``` 2. **保存指定文件** ```bash git stash push path/to/file.js # 仅保存特定文件的修改[^1] ``` 3. **查看存储列表** ```bash git stash list # 显示所有存储栈 ``` ```plaintext stash@{0}: On master: 修复登录逻辑 stash@{1}: On dev: 实验性功能 ``` 4. **恢复存储内容** ```bash git stash apply # 恢复最新存储(不删除栈记录) git stash apply stash@{1} # 恢复指定存储(如stash@{1})[^3] ``` 5. **恢复并删除存储** ```bash git stash pop # 恢复最新存储并从栈中删除 git stash pop stash@{0} # 恢复指定存储并删除[^3] ``` 6. **删除存储记录** ```bash git stash drop stash@{1} # 删除指定存储 git stash clear # 清空所有存储 ``` #### 💡 高级技巧 1. **包含未跟踪文件** ```bash git stash -u # 保存已修改+未跟踪文件 git stash -a # 保存所有文件(包括.gitignore忽略的) ``` 2. **创建分支恢复存储** ```bash git stash branch new-feature stash@{0} # 基于存储创建新分支 ``` 3. **查看存储差异** ```bash git stash show stash@{1} # 显示存储的摘要差异 git stash show -p stash@{0} # 显示完整差异(-p 参数) ``` #### ⚠️ 注意事项 1. **存储范围限制** - 只保存已跟踪文件的修改(默认不包含新文件) - 使用 `git add` 将新文件纳入跟踪后再 stash 2. **冲突处理** - 恢复存储时如与当前代码冲突,需手动解决冲突 - 冲突标记示例: ```javascript <<<<<<< Updated upstream console.log("远程代码"); ======= console.log("存储的代码"); >>>>>>> Stashed changes ``` 3. **最佳实践** - 总是添加描述性注释(`git stash save "描述"`) - 恢复前用 `git stash show` 预览内容 - 定期清理不再需要的存储(`git stash clear`) > **典型工作流**: > ```mermaid > graph LR > A[修改代码中] --> B{需切换分支?} > B -->|是| C[git stash save] > C --> D[git checkout 其他分支] > D --> E[完成操作] > E --> F[git checkout 原分支] > F --> G[git stash pop] > ``` #### 📚 示例场景 ```bash # 1. 保存当前工作 $ git stash save "用户模块优化" # 2. 拉取远程更新 $ git pull origin main # 3. 恢复存储内容 $ git stash pop # 4. 解决可能出现的冲突 $ git add conflicted-file.js $ git commit -m "合并用户模块优化" ``` --- ### 相关问题 1. **如何查看 stash 存储的具体内容差异?**[^3] 2. **git stash pop 和 apply 有什么区别?** 3. **stash 存储的内容会永久保存吗?何时会被删除?** 4. **如何将 stash 应用到不同的分支?** 5. **误删 stash 后能否恢复?有什么预防措施?**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值