git stash 保存和恢复分支内容

基本使用

stash命令可用于临时保存和回复修改,可跨分支

注:在未add之前才能执行stash!!!!

  • `git stash`

    保存当前工作进度,将工作区和暂存区恢复到修改之前。

  • `git stash save message`

    作用同上,message为此次进度保存的说明。

  • `git stash list`

    显示保存的工作进度列表,编号越小代表保存进度的时间越近。

  • `git stash pop stash@{num}`  只能恢复一次

    恢复工作进度到工作区,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}

  • `git stash apply stash@{num}`  可恢复多次

    恢复工作进度到工作区且该工作进度可重复恢复,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash apply stash@{0}

  • `git stash drop stash@{num}`

    删除一条保存的工作进度,此命令的stash@{num}是可选项,在多个工作进度中可以选择删除,不带此项则默认删除最近的一次进度相当于git stash drop stash@{0}

  • `git stash clear`

    删除所有保存的工作进度。

 

### 如何应用恢复 Git Stash 及其适用场景 #### 使用 `git stash` 命令保存更改 当开发者正在处理某个功能分支上的任务,突然需要切换到其他分支进行紧急修复或其他操作时,可以使用 `git stash` 来临时存储未提交的工作进展。这不会影响仓库的历史记录。 ```bash git stash save "message" ``` 此命令会将当前工作区中的所有改动(已跟踪文件的修改与新增加但尚未加入索引的内容)打包成一个新的stash条目,并清理干净工作树以便于自由转换至其它上下文环境[^1]。 #### 应用最近的一次 stash 修改 一旦完成了手头的任务想要重新拾起之前被打包起来的状态,则可以通过执行如下指令来实现: ```bash git stash pop ``` 这条语句不仅能够把最新存入栈内的变更取出来放到现有项目里去,还会自动销毁对应的stash对象;也就是说它是先做了一步`apply`,紧接着再做了一步`drop`的操作[^2]。 如果只是单纯查看或取出某项特定版本而不希望立即移除的话,那么应该单独调用这两个子命令: - 查看所有的 stashes 列表: ```bash git stash list ``` - 将指定编号 n 的 stash (比如第一个即最上面的那个) 覆盖到本地而保留原样不变: ```bash git stash apply stash@{n} ``` 对于那些不再需要的 stash 记录也可以手动清除掉它们: ```bash git stash drop stash@{n} # 移除单个指定位置处的对象 git stash clear # 清空整个队列里的全部成员 ``` #### 合适的应用场合 通常情况下,在以下几种情形下适合采用上述方法之一来进行快速切换开发状态: - 需要暂时搁置正在进行的工作以应对突发情况; - 出现冲突无法直接合并两个不同方向上的变动前先把一边的结果藏匿起来等待时机成熟后再作打算; - 或者是在测试某些实验性质的功能时不破坏原有稳定版源码结构的前提下尝试新的思路等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值