突然線上出現(xiàn) bug,需要我們緊急進(jìn)行修改,于是我們要基于最新的 master 分支新建一個(gè) bug 分支 bug-12,需要先切換到 master 分支,但是當(dāng)前分支的代碼沒有commit, 如果直接切換到 master 分支的話,dev-101 分支上的新增代碼就會(huì)跑到 master 分支,而代碼又不能此時(shí) commit ,于是就輪到 stash 出場(chǎng)了。

Stash 會(huì)保存當(dāng)前工作進(jìn)度,會(huì)把暫存區(qū)和工作區(qū)的改動(dòng)保存起來。

添加備注,選擇 CREATE STASH。你會(huì)發(fā)現(xiàn)當(dāng)前工作區(qū)內(nèi)的代碼被恢復(fù)成了原樣。

代碼暫存還原
突然線上出現(xiàn) bug,需要我們緊急進(jìn)行修改,于是我們要基于最新的 master 分支新建一個(gè) bug 分支 bug-12,需要先切換到 master 分支,但是當(dāng)前分支的代碼沒有commit, 如果直接切換到 master 分支的話,dev-101 分支上的新增代碼就會(huì)跑到 master 分支,而代碼又不能此時(shí) commit ,于是就輪到 stash 出場(chǎng)了。

Stash 會(huì)保存當(dāng)前工作進(jìn)度,會(huì)把暫存區(qū)和工作區(qū)的改動(dòng)保存起來。

添加備注,選擇 CREATE STASH。你會(huì)發(fā)現(xiàn)當(dāng)前工作區(qū)內(nèi)的代碼被恢復(fù)成了原樣。

代碼暫存還原
此刻切換到 master 分支,并創(chuàng)建 bug-12 分支進(jìn)行修復(fù) bug,修復(fù)完成后合并到 master 分支并 push 到遠(yuǎn)程倉庫,上文已經(jīng)演示如何合并,在此不再贅述。
將 bug-12 與 master 合并完成之后,現(xiàn)在要接著寫 dev-101 需求代碼,首先先切換到 dev-101 分支;
但是之前的代碼已經(jīng)被我們放到了 git 的 stash 當(dāng)中,我們現(xiàn)在要把代碼還原到工作區(qū)當(dāng)中。
選擇 Unstash Changes


選擇之前保存的,同時(shí)勾選 Pop stash(還原完成后,會(huì)自動(dòng)刪除這個(gè) stash),確定后,工作區(qū)之前寫的代碼就又回來了。

結(jié)語
Stash 利用好了,就可以自如切換分支,面對(duì)突如其來的需求也不必?zé)懒藒