在开发一个项目的时候,一般不可能一直在写自己当前的任务,往往是当前任务写的正火热的时候,又来了新的紧急性任务,或者出现了bug需要处理,那出现这种情况的时候怎么弄呢,当前的任务还没做完,还不能发布,这时候我们总不能把刚写的代码删除了吧。哈哈!!!不用,我们只需要执行一个git stash
的命令就可以把当前修改的内容保存起来,不再影响开发其他的功能。当我们开发完其他功能的时候,在切换会主线任务时,只需要执行下git stash pop
就可以了。
git stash的存储结构时栈的结构,我们可以一直stash,出来的时候也是一样,一直pop就可以,每次pop就会出来一个stash。但是小编不建议大家放多个stash,因为时间久了你就分不清楚了,而且一般情况下,老的stash就没有意义了。
下面咱再说集个关于stash常用的方法吧。
git stash
:保存当前工作进度,会把暂存区和工作区的改动stash(保存)起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。使用git stash save '注释'
可以添加一些注释。git stash list
显示保存进度的列表,也就是你所有的stash。git stash pop [–index] [stash_id]
: git默认会把工作区和暂存区的改动都恢复到工作区,通过git stash pop命令恢复进度后,会删除当前进度。git stash pop
把最近一次的stash恢复最新的进度到工作区。git stash pop --index
恢复最新的进度到工作区和暂存区,尝试将原来暂存区的改动还恢复到暂存区。git stash pop [stash_id]
恢复指定的进度到工作区。stash_id是通过git stash list命令得到的。例如:stash@{1}
git stash apply
[–index] [stash_id]` 除了不删除恢复的进度之外,其余和git stash pop 命令一样。git stash drop [stash_id]
删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。git stash clear
删除所有存储的进度,如果你忘记了存储进度上午内容,建议直接clear,但是一定要慎重。