[不论旅程多长,书都是我最好的旅行伙伴。]
应用场景:在某个分支上工作突然被打断,需要checkout到另一个分支,这时有些文件不想commit
作用:'储藏'可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用
命令:git stash
git stash list 查看所有的stash
git stash apply 恢复最近一次的stash
git stash apply stash@{n} 恢复最近第n次的stash
git stash apply --index 重新应用被暂存的变更,因为只apply暂存的修改不会应用
git stash drop 移除栈上的stash
git stash pop 立刻应用最近的一次stash,同时将其从堆栈中移除
git stash -p | git apply -R 取消最近应用的stash
git config --global alias.stash-unapply '!git stash show -p | git apply -R' 设置别名
ps:一个干净的工作目录和应用到相同的分支上并不是应用储藏的必要条件。即可以在其中一个分支上保留一份储藏,随后切换到另外一个分支,再重新应用这些变更。在工作目录里包含已修改和未提交的文件时,也可以应用储藏——Git 会给出归并冲突如果有任何变更无法干净地被应用。