git stash 正确用法

一、背景

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

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

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

git stash 正确用法_第1张图片

这时就可以使用 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 drop git apply恢复隐藏后, 需要手动删除 list 列表中的记录
git stash pop 恢复最新的进度到工作区
git stash pop stash@[stash_id] 恢复指定的进度到工作区

 2.3 使用流程

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

git stash 正确用法_第2张图片

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

1. 执行 `git stash`

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

执行  `git stash save "commend"`

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

保存注释的长这样:

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

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

git stash 正确用法_第3张图片

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

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

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

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

git stash 正确用法_第4张图片

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

继续开发。。。 

三、小结
 

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

你可能感兴趣的:(技术博客,git,git,stash,git,暂存修改,git,stash,恢复,git,stash,使用)