當我們拿到一個新的bug或者feature(功能)時,首先應該想到經過分支來完成我們的任務。由於在軟件開發中,老是會根據客戶的需求不斷的添加新的feature進來,同時在作移動開發過程當中bug也能夠說是「常客」。經過前幾章的內容,相信我們很天然會想到建立一個新的branch(分支),在此分支上來修復bug或者實現feature,完成後,而後再merge(合併)到我們的主分支上。git
當我們接到一個好比說是關於空指針的bug,而我們手中的活(在b1分支上的bug)還沒提交,預計要半天的時間,但新的bug必須在1小時內修完。這時我們就要用到「儲存現場」的功能git stash,這樣我們能夠在修護新的bug以後再恢復現場來繼續原先尚未提交的操做。下面我們先修改以前的hellogit.txt文件的,修改內容爲:app
Hello Git Git is so easy.
而後我們仍然使用git status來觀察一個該文本的狀態: spa
能夠看到紅色部分提示,該文件已經被修改,同時該文件的狀態仍處於工做區中,這是我們接到一個新的bug,上級要求必須儘快修復,這時我們先「保存現場」:指針
用git status查看工做區,就是乾淨的,除非有沒有被Git管理的文件:
code
所以咱能夠放心地建立分支來修復bug,如今假定我們使用主分支(master)來修復我們的這個新的bug,就從主分支上建立一個臨時分支b2:
開發
如今修復1.txt中的bug:it
bug修好了,下面提交:ast
切換到主分支上在merge(合併):class
而後刪除臨時分支b2:軟件
好了,新的bug已經修復完,下面就能夠繼續回到我們原來的分支(b1)上繼續工做了:
我們能夠看到,工做區是乾淨的,以前我們「儲存的現場」哪去了呢?咱能夠用git stash list來查看:
存儲的工做現場還在,Git把stash內容存在某個地方了,可是須要恢復一下,有兩個辦法:
方法一:先用git stash apply來恢復現場,而後再用git stash drop來刪除stash內容;
方法二:直接使用git statsh pop來恢復並刪除stash內容。
我們爲了方便,就直接用git stash pop了:
能夠看到b1分支上hellogit.txt的狀態又回來了,咱又能夠繼續在b1分支上幹活了。
總結:(1)存儲現場:git stash
(2)查看工做現場:git stash list
(3)恢復現場有兩種:1,使用git stash apply 來恢復,而後再使用git stash drop來刪除stash的內容。
2.使用git stash pop,來恢復並刪除stash內容。
(4)若是要屢次使用stash,恢復的時候先用git stash list查看,而後在指定你要恢復的內容:git stash apply stash@{0}。
( 5) 若是要丟棄一個沒有合併的分支,可使用git branch -D branch-name。