Skip to content

git stash

L edited this page Jun 5, 2019 · 4 revisions

应用场景

1.发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交
2.如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,使用git stash就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修Bug,等到修完Bug,提交到服务器上后,再使用git stash apply将以前一半的工作应用回来
3.经常有这样的事情发生,当你正在进行项目中某一部分的工作,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作
储藏(stash)可以存储并获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用

使用

添加提交到stash

git stash

或者添加一些信息

git stash save your-message

恢复缓存的工作目录

将缓存堆栈中的第一个stash删除,并将对应修改应用到当前的工作目录下

git stash pop

将缓存堆栈中的stash多次应用到工作目录中,但并不删除stash拷贝

git stash apply

查看现有stash

git stash list

显示结果

stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log

移除stash

git stash drop stashName

stashName:stash@{0}

查看指定stash的diff

git stash show stashName

参考资料

git-stash用法小结

Clone this wiki locally