應用場景:使用git的時候,咱們每每使用branch解決任務切換問題,例如,咱們每每會建一個本身的分支去修改和調試代碼, 若是別人或者本身發現原有的分支上有個不得不修改的bug,咱們每每會把完成一半的代碼 commit提交到本地倉庫,而後切換分支去修改bug,改好以後再切換回來。這樣的話每每log上會有大量沒必要要的記錄。其實若是咱們不想提交完成一半或者不完善的代碼,可是卻不得不去修改一個緊急Bug,那麼使用'git stash'就能夠將你當前未提交到本地(和服務器)的代碼推入到Git的棧中,這時候你的工做區間和上一次提交的內容是徹底同樣的,因此你能夠放心的修 Bug,等到修完Bug,提交到服務器上後,再使用'git stash apply'將之前一半的工做應用回來。也許有的人會說,那我可不能夠屢次將未提交的代碼壓入到棧中?答案是能夠的。當你屢次使用'git stash'命令後,你的棧裏將充滿了未提交的代碼,這時候你會對將哪一個版本應用回來有些困惑,'git stash list'命令能夠將當前的Git棧信息打印出來,你只須要將找到對應的版本號,例如使用'git stash apply stash@{1}'就能夠將你指定版本號爲stash@{1}的工做取出來,當你將全部的棧都應用回來的時候,可使用'git stash clear'來將棧清空。git
備份當前的工做區的內容,從最近的一次提交中讀取相關內容,讓工做區保證和上次提交的內容一致。同時,將當前的工做區內容保存到Git棧中。緩存
注:若是要加備註信息能夠用: git stash save "個人備註信息",當棧內有多個信息時,能夠知道本身要恢復哪一個信息服務器
應用某個存儲,但不會把存儲從存儲列表中刪除,默認使用第一個存儲,即stash@{0},若是要使用其餘個,git stash apply stash@{$num} , 好比第二個:git stash apply stash@{1}app
從Git棧中讀取最近一次保存的內容,恢復工做區的相關內容。調試
恢復以前緩存的工做目錄,將緩存堆棧中的對應stash刪除,並將對應修改應用到當前的工做目錄下,默認爲第一個stash,即stash@{0},若是要應用並刪除其餘stash,命令:git stash pop stash@{$num} ,好比應用並刪除第二個:git stash pop stash@{1}it
和 git stash apply 不一樣的是,applay 不會刪除緩存, 而pop會bug
其中 pop 和 apply 的不一樣,就是 pop 的時候,會把list中取出記錄刪除掉,而apply只取出,其實就是 git pop 至關於 git apply + git dropapply
顯示Git棧內的全部備份,能夠利用這個列表來決定從那個地方恢復。備份
具體顯示緩存概變動的內容,默認show第一個存儲,若是要顯示其餘存貯,後面加stash@{$num},好比第二個 git stash show stash@{1}co
git stash show -p : 顯示第一個存儲的改動,若是想顯示其餘存存儲,命令:git stash show stash@{$num} -p ,好比第二個:git stash show stash@{1} -p
丟棄stash@{$num}存儲,從列表中刪除這個存儲
清空Git棧, 刪除全部緩存的stash。