一、前言
前几篇文章讲到了git分支之间的各种合并和使用的操作,但是在各种开发分支之间切换(或者是拉取远程代码,当前需要一个干净的工作空间),其实非常依赖一个命令,git分支切换过程中非常常用的命令,git stash——保存当前分支未提交的内容。
二、正文
git stash的应用场景有如下,多分支切换工作即当前的工作内容未形成一个有效的提交,就先给保存;解决临时bug、拉去同步远程分支之前清理保存当前工作空间。当前命令有:
git stash保存当前分支内;
git stash pop 取出栈顶即上一次保存的内容;
git stash list 查看stash list列表。
但并不只是这么简单,大家都知道,git stash的数据模型是基于栈的,但是他到底是基于整个git工作空间的栈,还是当前分支的保存栈呢?那么首先说一下结论,他的存储栈是基于整个工作空间的,同时储存文件操作是当前操作分支维度的。
遇到问题
具体的来说,如图下所示,当前从master之后又三个分支,分别是1-F,2-F,3-F,对应的不同的工作内容。我前段时间就经常游走于这样的一