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