起因:
-
每当正在delivery分支上开发某个需求,这个时候有一个紧急bug需要紧急修复,但是正在开发的内容只完成了一半,还不想提交,这个时候可以使用git stash命令将修改的内容保存至堆栈区,然后顺利切换到hotfix分支上进行bug修复,修复好之后,再切回delivery分支,从堆栈中恢复刚刚保存的内容。
-
还有一种可能:开发到一半的时候发现分支选错了,这个时候将改动的代码保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。
命令详解:
git stash save "内容"
保存后控制台会输出Saved working directory and index size State On 分支: XXX(内容)
git stash list
使用git stash list 可以查看当前堆栈中存放的所有记录(会显示所在暂存分支名,当然也是可以在其他分支里弹出的)
git stash pop
使用git stash pop 弹出最外一层的暂存记录(弹出会会将暂存区的记录删除),建议使用这个命令进行弹出,后期如果暂存区多了容易混淆。
git stash apply stash@{1}
如果想指定某个进行应用的话,可以使用git stash apply,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中。
注:@{x} x 是在git stash list里面对应的数字
并且是不会删除分支的
git stash drop + 名称
从堆栈中移除某个指定的stash
git stash clear
清除堆栈中的所有内容
git stash show stash@{1}
查看指定的stash和当前目录差异
通过git stash shop -p 查看详细的不同: