本文git版本1.9.6


git名称stash:帮助开发人员暂时搁置当前已做的改动,倒退到改动前的状态,进行其他的必要操作(比如解决一个bug等),待解决bug后重新载入之前搁置的改动。

可以把执行stash动作想象为将当前commit状态临时保存到一个空间(栈内存);

示例:

git暂存工作区stash_第1张图片

可以看到stash动作使状态恢复到未修改前;

1、 主要命令

git stash                       #丢进暂存区
git stash list                  #列出所有暂存区的资料
git stash pop                   #取出暂存区最后一个暂存的状态(栈内存,先进后出)  后面快跟选择的记录 @{n}
git stash apply                 #取出暂存区最后一个暂存的状态,但是stash记录不移除
git stash clear                 #把stash 记录清空

示例:修改本地code,添加到staging area ,将已经修改的code保存到stash,恢复到未修改前,修改code,然后提交;再将暂存区的记录取出,修改完成后,再次提交;

$ cat hello.rb
$ git status -s
$ echo "stash 1" >> hello.rb
$ git status -s
$ git stash
$ git stash list
$ git stash pop

git暂存工作区stash_第2张图片

git暂存工作区stash_第3张图片

最后显示冲突了,先不管,先说明了stash的功能,留着后面分支解决冲突的问题