git存储篇之stash

发布日期 目录 Git

git存储篇之stash

本文介绍一个git非常好用的命令——stash存储,这个命令可以把我们修改的文件存放到本地内存中而不加入版本库。

使用场景1:

我们在mater分支改的东西,但是我们并不能提交到master分支上,我们可以将我们修改的代码存储在本地,存储到本地之后,我们的工作区相当与没有修改代码,这时我们新建分支并切换到该分支上,这时再将我们之前存储的代码在提取出来,然后我们的分支上又有了之前master分支修改的代码,再将我们修改的代码提交到该分支上。

使用场景2:

我们在开发一个业务,突然经理说先开发另一个,但是我们又不能把代码删除掉,复制文件到桌面备份又有点麻烦,这时便可以使用stash命令,先将我们之前修改的代码存储起来,开发完经理交代的任务后,再从存储中取出来接着开发。

好了,说了stash的使用场景,下面来说下stash的用法。

这里我们只列出最经常用的几种用法:
git stash
git stash list
git stash apply
git stash drop
git stash pop

下面说下每种命令代表的含义:

git stash
是将我们当前所修改的代码(包括暂存的与未暂存的,说白了就是清空工作区的修改保存到存储库)存储到本地,并作为一个存储,标识为stash@{0}(这个可以理解为存储库的id,每次拿取与删除指定存储,都是根据这个标识来操作),也就是说每次执行git stash命令,都会放置为第一位存储。也可以想象成stash存储库是一个瓶子,每次只能从瓶口放进去存储,每次放进去的新存储都会被放到瓶中最上面一层,原来瓶中最上面那层存储压为第二层存储,以此类推。可理解为每次存储都作为瓶子里面的一层东西(一层存储)。
推荐使用git stash save "这是说明内容" 可以为每个版本暂存添加说明


git stash list
因为可以存很多次,所以这里列出所有的存储列表,可以看到最新的存储标识为stash@{0}也就是第一位。可以想象成列出瓶子里面的每一层存储


git stash apply
默认取出最上面存储的内容(即stash@{0}标识库),但不会删除掉该存储。想象只能从瓶口拿出来,默认拿出最上面一个存储

git stash apply stash@{1}
取出指定存储的内容(例子即二个存储),并不会删除存储库。想象瓶子里面取出指定层数的存储,也就是要取那一层的存储内容


git stash drop
默认删除最上面的存储。类似于瓶子,默认从最上面拿出来丢弃掉

git stash drop stash@{1}
也可以删除指定的存储。想象瓶子里面删除第几层的存储


git stash pop
默认取出最上面的存储,并删除该存储

git stash pop stash@{1}
取出指定存储,并删除该存储

发表评论

邮箱地址不会被公开。