git stash

git stash save

git stash list

git stash show

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

git stash pop {0}

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

<strong>git stash clear</strong> :删除所有缓存的stash


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

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

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

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

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

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

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

git stash apply {0}  将第0条stash中的内容回复到当前分支! 可以跨分支。也可以使用git stash pop {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