常常有這樣的事情發生,當你正在進行項目中某一部分的工做,裏面的東西處於一個比較雜亂的狀態,而你想轉到其餘分支上進行一些工做。問題是,你不想提交進行了一半的工做,不然之後你沒法回到這個工做點。解決這個問題的辦法就是git stash命令。git
假設你目前在a分支上開發新功能,開發進行到一半,測試過來找你說有個高優先級的bug須要先修,以往咱們先commit咱們當前的修改到一個新的分支,而後再checkout一個新分支來修bug,但如今只要輸入一下命令,就能直接在該分支上(或切出新分支後)進行開發。app
git stash
複製代碼
stash將當前全部修改暫存起來,分支暫存區有變乾乾淨淨的了。須要加comment的話,測試
git stash save <comment message>
複製代碼
git stash list
複製代碼
列出咱們全部存在的stash.就像spa
stash@{0}裏面的數字相似他們的序號。git stash apply stash@{<index>}
複製代碼
這樣,該條修改便會應用到當前分支上,若是發生衝突,請解決衝突。code
git stash apply 以後,咱們仍然可以經過git stash list
的方式查看到該條修改。 若是你不想該條stash還存在,應該使用git stash pop
的方式。cdn
git stash pop
複製代碼
該種方式永遠都會將最上面的修改應用到分支上,而且應用以後,該條修改就不存在了。stash pop永遠都是取的第一條數據。stash的儲存方式有點像棧的模式。blog
git stash clear
複製代碼
這樣全部的stash都消失了。開發