Git代码暂存之Stash实际应用
突然线上出现 bug,需要我们紧急进行修改,于是我们要基于最新的 master 分支新建一个 bug 分支 bug-12,需要先切换到 master 分支,但是当前分支的代码没有commit, 如果直接切换到 master 分支的话,dev-101 分支上的新增代码就会跑到 master 分支,而代码又不能此时 commit ,于是就轮到 stash 出场了。
![](https://img.haomeiwen.com/i12858151/97dcebcf72efd325.png)
Stash 会保存当前工作进度,会把暂存区和工作区的改动保存起来。
![](https://img.haomeiwen.com/i12858151/86c4b754e96679f9.png)
添加备注,选择 CREATE STASH。你会发现当前工作区内的代码被恢复成了原样。
![](https://img.haomeiwen.com/i12858151/6de5c1e31de48db7.png)
代码暂存还原
突然线上出现 bug,需要我们紧急进行修改,于是我们要基于最新的 master 分支新建一个 bug 分支 bug-12,需要先切换到 master 分支,但是当前分支的代码没有commit, 如果直接切换到 master 分支的话,dev-101 分支上的新增代码就会跑到 master 分支,而代码又不能此时 commit ,于是就轮到 stash 出场了。
![](https://img.haomeiwen.com/i12858151/a27792ceb48e330b.png)
Stash 会保存当前工作进度,会把暂存区和工作区的改动保存起来。
![](https://img.haomeiwen.com/i12858151/877b1ca84de8acbd.png)
添加备注,选择 CREATE STASH。你会发现当前工作区内的代码被恢复成了原样。
![](https://img.haomeiwen.com/i12858151/4477b42977f6476f.png)
代码暂存还原
此刻切换到 master 分支,并创建 bug-12 分支进行修复 bug,修复完成后合并到 master 分支并 push 到远程仓库,上文已经演示如何合并,在此不再赘述。
将 bug-12 与 master 合并完成之后,现在要接着写 dev-101 需求代码,首先先切换到 dev-101 分支;
但是之前的代码已经被我们放到了 git 的 stash 当中,我们现在要把代码还原到工作区当中。
选择 Unstash Changes
![](https://img.haomeiwen.com/i12858151/2199e88b72c18b5f.png)
![](https://img.haomeiwen.com/i12858151/680b17b56fd3b513.png)
选择之前保存的,同时勾选 Pop stash(还原完成后,会自动删除这个 stash),确定后,工作区之前写的代码就又回来了。
![](https://img.haomeiwen.com/i12858151/eba1114e4a994bca.png)
结语
Stash 利用好了,就可以自如切换分支,面对突如其来的需求也不必烦恼了~