git stash

Posted butterflybay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git stash相关的知识,希望对你有一定的参考价值。

git stash save

git stash list

git stash show

git stash apply stash@{0} //0为序号,

git stash pop stash@{0}

git stash drop stash@{0} :丢弃stash@{$num}存储,从列表中删除这个存储

git stash clear删除所有缓存的stash

 


 

 

例如, 当前处于master分支,你更改某个文件a, 但是并没有执行git add ,git commit。

然后,执行git stash save "changed a",

则你对a文件的修改则被保存了stash stack. 这时候,执行git status可以看到工作区、暂存区都是干净的,于是乎你可以切换分支了。

 

git stash list 可以现实出你stash的记录。

$ git stash list
stash@{0}: On master: 0501

git stash show 可以提示你的stash的具体内容;

$ git stash show stash@{0}
 file1.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

git stash apply stash@{0}  将第0条stash中的内容回复到当前分支! 可以跨分支。也可以使用git stash pop stash@{0}, 但是用pop会导致stash stack中的该条记录被同时删除了,即git stash list命令中不会显示了!

 


 

 

Note1:

新增的没有被add的文件,直接执行stash是不会被存储的:

如果你新增加了一个文件,然后,执行git stash save "xxx", 会被提示:No local changes to save;

执行git add该文件之后,在执行git stash save "xxx"则有效了。

 

 Note2:

git stash save 与git stash push 的区别:

https://www.softwhy.com/article-8630-1.html


 

Ref:

https://git-scm.com/docs/git-stash

 

以上是关于git stash的主要内容,如果未能解决你的问题,请参考以下文章

git-stash用法

git stash pop 冲突,git stash list 中的记录不会自动删除的解决方法

git stash pop 冲突怎么解决?

git stash命令使用

Git实战手册: stash解惑与妙用

git stash误使用drop删掉本地保存,恢复代码一次记录