Git12 stash

来源:互联网 发布:tushare mysql 编辑:程序博客网 时间:2024/06/11 06:23

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

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

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

git stash save

这里写图片描述

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

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

git stash pop && git stash apply

这里写图片描述

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

参考

  • http://www.jianshu.com/p/ea86475cf922
  • https://git-scm.com/book/zh/v1/Git-工具-储藏(Stashing)