场景
如果当前分支正在开发,临时要切换到其它分支,这个时候是不能切过去,会提示你要先commit,但是可能这时候的代码你并不想提交,就需要用到这个临时存放
git stash 用法
-
git stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。
比如下面的中间状态,通过git stash命令推送一个新的储藏,当前的工作目录就干净了
stash仅仅是个本地操作,git push 不会推送到服务器 - 可以通过git stash pop命令恢复之前缓存的工作目录, 这个指令将缓存堆栈中的第一个stash删除,并将对应修改应用到当前的工作目录下,
- 也可以使用git stash apply命令,将缓存堆栈中的stash多次应用到工作目录中,但并不删除stash拷贝
- 查看现有stash
git stash list
stash@{0}: WIP on release_1.3.57: b0601f2e4 Version 1.3.57, Build 1880.
stash@{1}: WIP on release_1.1.8: cd659570 Version 1.1.8, Build 732.
- 移除stash, git stash drop 名字
git stash drop stash@{1}
或者使用git stash clear命令,删除所有缓存的stash
- 查看指定stash的diff, 可以使用git stash show 名字
git stash show stash@{0}
- 从stash创建分支,运用命令git stash branch testchanges