在 Git 的栈中保存当前修改或删除的工作进度,当你在一个分支里做某项功能开发时,接到通知把昨天已经测试完没问题的代码发布到线上,但这时你已经在这个分支里加入了其它未提交的代码,这个时候就可以把这些未提交的代码存到栈里。

1
git stash

将未提交的文件保存到Git栈中

1
git stash list

查看栈中保存的列表

1
git stash show stash@{0}

显示栈中其中一条记录

1
git stash drop stash@{0}

移除栈中其中一条记录

1
git stash pop

从Git栈中检出最新保存的一条记录,并将它从栈中移除

1
git stash apply stash@{0}

从Git栈中检出其中一条记录,但不从栈中移除

1
git stash branch new_banch

把当前栈中最近一次记录检出并创建一个新分支

1
git stash clear

清空栈里的所有记录

1
git stash create

为当前修改或删除的文件创建一个自定义的栈并返回一个ID,此时并未真正存储到栈里

1
git stash store xxxxxx

将 create 方法里返回的ID放到 store 后面,此时在栈里真正创建了一个记录,但当前修改或删除的文件并未从工作区移除

1
2
3
4
5
$ git stash create
a66fabcd90b184f9a24294fe793179d722ddccb5
$ git stash store a66fabcd90b184f9a24294fe793179d722ddccb5
$ git stash list
stash@{0}: Created via "git stash store".

参考