暂存切换stash
前置知识
有时候我们收到一个bug,但手头正在修改一个feature分支,且开发得火热,并不想在这时候进行commit
有如下几种处理方式:
情况1:
git add
并且git commit
,再git checkout
,提交到当前分支,但是这样就会造就多一个临时的commit情况2:
git add
但不git commit
,然后使用git stash
当前的工作状态进行暂存(git栈),然后git checkout
到新分支,做修改。git checkout
回到之前的分支之后git stash apply
可以恢复之前的修改,再git commit,提交到之前的分支情况3:
git add
但不git commit
,也不git stash
,直接git checkout
到新分支,做修改,然后再git commit
的话,记录就在切换后的分支下面。
git stash
暂存当前工作状态
git add .
git stash
git checkout {切换其他分支进行其他工作}
恢复
# 查看当前已暂存的工作区
git stash list
# 恢复对应的工作区,且同时删除在git栈中的数据,如果是临时数据恢复,可以采用pop
git stash pop
# or
# 以下方法恢复后,不会将git栈的记录删除
git stash apply stash@{$num}
# 删除git栈中的记录,如果使用pop,会在恢复时同时删除
git stash drop stash@{$num}
其他指令
# 清除所有git栈中的记录
git stash clear
# 对比本地
git stash show
操作案例
git add .
git stash
git checkout master
git checkout dev
git stash pop