git stash命令
git stash是一个很实用特性,在日常团队项目中,可能会遇到这样场景:比如项目成员推送了当前项目新特性,你需要拉取,但是不想把这些特性合并到当前开发分支,需要checkout到其他分支去拉取,而当前开发分支又不想提交,那么这时就可以使用stash特性解决这个问题。stash
字面意思存放,贮藏,在git里的含义是把当前暂存区
内容存放起来,通常理解为保存当前工作进度,stash后就可以随意切换分支了。当有需要时,随时可以把保存在本地的工作进度恢复出来。注意一点的是,stash内容和stash所在分支关系不大。举个例子,假设在dev1
分支上stash了一个工作状态dev1_A
,这时切换到dev2
分支上,并且删除了dev1
分支,这时stash的工作状态并不会被删除,完全可以在dev2
分支上把这个工作状态dev1_A
恢复出来。具体使用命令如下:
git stash
/git stash save "message..."
备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中git stash list
显示Git栈内的所有备份,可根据这个列表来决定从备份版本恢复git stash pop [--index][<stash>]
如果不使用任何参数,会恢复最新保存的工作进度,并将恢复的工作进度从存储的工作进度列表中清除;如果提供参数,则从该<stash>
中恢复,恢复完毕也将从进度列表(栈)中移除<stash>
git stash apply [--index][stash_id]
其作用和
git stash pop
类似,但不删除恢复的进度git stash clear
清空Git栈,即删除所有备份