储藏(Stashing)
经常有这样的事情发生,你正在某个分支中进行开发工作,里面的东西处于一个比较杂乱的状态,而你又要转到其他分支上进行一些工作。问题是,必须先提交代码才能切换分支,但你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash
命令。
“‘储藏”“可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件(未暂存的变更)和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。
堆栈中的结点是有序号的:栈顶的序号是0,栈底的序号是n-1。
1 往堆栈推送一个新的储藏
git stash
2 重新应用储藏
相同点:默认只操作栈顶结点。如果提供--index选项,则操作指定的结点。
不同点:git stash pop会将结点从堆栈中删除,git stash apply则不会。
git stash pop
git stash pop --index stash@{结点的序号}
git stash apply
git stash apply --index stash@{结点的序号}
3 查看储藏堆栈
git stash list
4 移除储藏
git stash drop stash@{结点的序号}
git stash drop stash@{0},可以删除栈顶结点
5 清空储藏
git stash clear 对于使用git stash drop无法移除的储藏,可使用该命令清空