当你正在做一项复杂的工作时, 发现了一个和当前工作不相关但是又很讨厌的bug。 你这时想先修复bug再做手头的工作, 那么就可以用 git stash 来保存当前的工作状态, 等你修复完bug后,执行反储藏
(unstash)操作就可以回到之前的工作里。
基本操作
保存 stash
git stash
保存当前的工作进度。会分别对暂存区和工作区的状态进行保存
git stash save "message..."
这条命令实际上是第一条 git stash
命令的完整版,会保存你的本地修改到储藏(stash
)中, 然后将你的工作目录和索引里的内容全部重置, 回到你当前所在分支的上次提交时的状态。
stash 列表
git stash list
显示进度列表。此命令显然暗示了 git stash
可以多次保存工作进度,并用在恢复时候进行选择
恢复 stash
git stash pop [--index] [\<stash>]
-
如果不使用任何参数,会恢复最新保存的工作进度,并将恢复的工作进度从存储的工作进度列表中清除。
-
如果提供参数(来自 git stash list 显示的列表),则从该 中恢复。恢复完毕也将从进度列表中删除 。
-
选项 –index 除了恢复工作区的文件外,还尝试恢复暂存区。
git stash apply [--index] [\<stash>]
除了不删除恢复的进度之外,其余和 git stash pop
命令一样
示例:
git stash apply stash@{1}
删除 stash
git stash clear
删除所有存储的进度