git stash 正确用法

一、背景

我们经常会遇到这样的情况:

在一个分支开发新功能,还没开发完毕,做到一半时有反馈紧急bug需要处理,但是新功能开发了一半又不想提交。

分支有改变时不提交又不能切换分支,如下:

这时就可以使用 git stash ,stash 就是为此而生的!

二、使用

2.1 使用之前,先简单了解下 git stash 干了什么:

它会保存当前工作进度,会把暂存区和工作区的改动保存到一个未完结变更的堆栈中;执行完这个命令后,在运行 git status 命令,就会发现当前是一个干净的工作区,没有任何改动。

  1. git stash 是本地的,不会上传到服务器上;
  2. 可以使用 git stash save 'message...' 添加一些注释。

2.2 git stash 相关命令

命令名作用
git stash隐藏当前的工作现场, 此时, git status的结果是 clean
git stash list查看所有隐藏, 每一行的冒号前面的字符串就是标识此隐藏的id
git stash apply重新显示标识为 id 的隐藏
git stash dropgit apply恢复隐藏后, 需要手动删除 list 列表中的记录
git stash pop恢复最新的进度到工作区
git stash pop stash@[stash_id]恢复指定的进度到工作区

 2.3 使用流程

一般先使用 git stash list 查看有没有已经 stash 的记录,避免和自己的混淆,到时候使用时不知道是哪条记录

 查看有无用的 list,可以先使用 git stash drop n 删除,直到 list 为空

1. 执行 `git stash`

默认是不带注释的,想要后面看的更清楚该 stash 是存储的什么,可以如下操作:

执行  `git stash save "commend"`

 2. 查看刚才保存的工作进度 `git stash list`

保存注释的长这样:

 可以看到 stash@{0} 是刚才保存的

3. 这时候在看分支已经是干净无修改的(改动都有暂存到 stash)

4. 现在就可以正常切换到目标分支,进行相应操作

5. 其他分支处理完成,再切回来使用刚才的 stash, 还是先查看 暂缓列表

6. 选择使用暂缓 `git stash apply n

注:n 是序号,如下图红色箭头指示

这时就看到刚才保存的工作进度,已经原样恢复~大功告成!

继续开发。。。 

三、小结
 

这个相对简单,就是学会使用就 ok, 这里就不再啰嗦总结了

  • 58
    点赞
  • 280
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值