git stash 用法总结和注意点 stash的原理:将本地没提交的内容(git commit的内容不会被缓存 但git add的内容会被缓存)进行缓存并从当前分支移除,缓存的数据结构为堆栈,先进后出
保存:git stash save "xxx" 加上自己的注解进行缓存
git stash与git stash save是一样的,将没有提交的内容缓存并移除,而这条缓存名称为最新一次提交的commit -m的内容,如果没有本地提交则是拉远程仓库是的commit内容
取出:git stash pop 命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash存储,命令:git stash pop stash@{$num}
查看堆栈中的 stash 列表:git stash list
stash@{0}: On master: add qwer to style.css
stash@{1}: WIP on master: 1eff713 add doing mark
如图:git stash pop只能取最上面的stash,而且是先进后出,默认加载后面存储的stash
打开指定的stash
两种方式:
git stash apply stash@{$num}
git stash pop stash@{$num}
两者的区别是pop是从堆栈中"剪切",apply是复制
查看stash内容
git stash show 默认最上面stash修改文件的行数变化
git stash show -p 默认最上面stash修改文件具体内容
git stash show stash@{id} 指定stash修改的文件行数变化
git stash show stash@{id} -p 指定stash修改的文件内容变化