git stash的使用场景

当在一个分支上正在工作,突然被打断需要紧急修复一个线上的问题,bug可能在当前分支,也或许在另一个分支,但是手上的代码还没有到能够提交的地步,又不能回滚,所以需要与即将修复的所产生的代码进行一个隔离。就可以使用git stash命令啦。

1、git stash

表示将当前分支上的未提交的代码保存起来,也就是目录中蓝色未提交的文件将会变成修改之前的黑色。此时可以进行切换分支或者拉取当前分支最新的代码。这个暂存区是可以作用于所有分支的,是一块单独的区域,后续可以将暂存的内容恢复到任意分支。

2、git stash save “这一stash的标签”

例:git stash save "test3"
表示将当前分支上的未提交的代码保存起来,同时会比第一个命令多一个标签。两种的对比如下:


image.png

蓝色的是git stash,没有加标签的
黄色的 是git stash save "标签" 加了标签的

3、git stash list

表示查看所有stash,以一个列表展示,顺序是后来居上的。可以参考上方那张图

4、git stash pop

我们既然做了一个内容的暂存,那怎么使用的?比如线上bug解决完了,回来继续开发,需要把搁置的代码恢复出来,就可以在任何分支上使用这个命令,将会把最后添加到stash list的一个stash拿出来,恢复到当前分支上,并且会删除这一条记录。换言之,使用了pop只能把一个stash恢复到一个分支上,作用于多个分支就不太可能了。后面会说git stash apply可以弥补这个需求。

5、git stash apply

区别于 git stash pop的是恢复暂存区的代码之后,不会删除记录,仍然可以多次进行对于一条记录的恢复。

6、git stash apply "stash的id" 例: git stash apply "stash@{2}"

恢复指定的stash,默认是恢复最近一条

7、git stash branch "branch name"

从最近的一条stash进行创建一个新分支

8、git stash clear

清除stash列表里面的所有记录

9、git stash show

显示最近一条stash和当前工程的差异对比

10、git stash drop + stash 名称 例:git stash drop stash@{2}

清除指定的一条stash

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。