背景:
- 当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,当前正在dev上进行的工作还没有提交(进行了add)
- 此时可以使用
git stash
命令,把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash
- 当完成bug修复工作后,返回之前的工作分支dev,然后可以使用
git stash list
命令查看之前保存的工作现场
git stash list
- 然后有两种命令可以进行恢复:
- 一是用
git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除; - 另一种方式是用
git stash pop
,恢复的同时把stash内容也删了
- 可以多次stash,恢复的时候,先用
git stash list
查看,然后恢复指定的stash,用命令:
git stash apply stash@{0}
总结,stash相关命令
git stash save "save message"
: 执行存储时,添加备注,方便查找,只使用git stash 也是可以的,但查找时不方便识别。注意使用该命令时先使用git add *
命令将文件添加到版本管理中
git stash
或
git stash save "save message"
git stash list
:查看stash了哪些存储
git stash list
git stash apply
:应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num}
, 比如第二个:git stash apply stash@{1}
git stash apply
或
git stash apply stash@{0}
git stash pop
:命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num}
,比如应用并删除第二个:git stash pop stash@{1}
git stash pop
或
git stash pop stash@{0}
git stash drop stash@{$num}
:丢弃stash@{$num}存储,从列表中删除这个存储
git stash drop stash@{$num}
git stash clear
:删除所有缓存的stash
git stash clear
git stash show
:显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个git stash show stash@{1}
git stash show
或
git stash show stash@{0}
git stash show -p
: 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p
,比如第二个:git stash show stash@{1} -p
参考:
Bug分支