Git12 stash

经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。

“储藏”可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。

这个命令会保存当前的暂存区和工作区的状态,然后返回到HEAD

git stash save

Git12 stash

Git12 stash
- keep-index: 表示 stash之后,所有对暂存区的改变会维持不变(比如你之前add 了一个file,提交之后,git status还是能够在暂存区看到你的 add),如果是—no-keep-index的话,stash之后的状态就是git reset —hard HEAD。

未选择这个选项时, 新添加的文件(在暂存区更改的内容)不会被保存,如果选择了keep-index,则会被保存

git stash pop && git stash apply

Git12 stash

二者都会回复工作区到stash之前的状态,区别是pop会移除stash,apply不会移除

参考