當(dāng)我們?cè)陂_(kāi)發(fā)一個(gè)版本的時(shí)候乳怎,突然上一個(gè)版本出了一個(gè)bug需要修復(fù)频鉴。這時(shí)候一般的做法就是將當(dāng)前代碼提交一個(gè)commit
然后新建一條分支修改bug
,但是這樣子無(wú)非是污染到了commit
提交信息,因?yàn)槲覀冃掳姹具€未開(kāi)發(fā)完粗合。所以 git stash
就能夠解決這個(gè)問(wèn)題
?? 保存當(dāng)前的代碼
git stash
直接將代碼保存到stash中git stash save "message"
將代碼保存到stash中,病對(duì)其加以注釋(新文件會(huì)被忽略)git stash save -a "message"
包含新文件
?? 查看stash
git stash list
查看stash了哪些存儲(chǔ)-
git stash show
查看第一條stash的改動(dòng)信息如需查看其他stash的改動(dòng)信息,如查看第二個(gè)
git stash show stash@{1}
-p
顯示具體改動(dòng)git stash show -p
?? 取回stash的代碼
-
git stash apply
應(yīng)用某個(gè)存儲(chǔ),但不會(huì)把存儲(chǔ)從存儲(chǔ)列表中刪除毅糟,默認(rèn)使用第一個(gè)存儲(chǔ),即stash@{0}如需使用其他的
git stash apply stash@{$num}
git stash pop
與apply
差不多耐床,只不過(guò)這個(gè)在取出之后會(huì)將此stash空間刪除git stash drop stash@{$num}
丟棄stash@{$num}存儲(chǔ),從列表中刪除這個(gè)存儲(chǔ)git stash clear
刪除所有緩存的stash
?? 舉例說(shuō)明
當(dāng)前我的git信息
當(dāng)前我的分支修改狀態(tài) 一個(gè)改動(dòng)的文件富拗,一個(gè)新增的文件
如果我們直接執(zhí)行 git stash
新增的文件testNew.md
是不會(huì)被添加進(jìn)去的臼予,需要執(zhí)行 git stash -a
方可將兩個(gè)文件都緩存進(jìn)去
如果添加stash的時(shí)候不寫(xiě)備注,則會(huì)使用分支最近的一條log的備注
PS C:\study\Frontend-hhooke> git stash list
stash@{0}: WIP on master: 8422a02 test文件
使用 git stash save -a "這是備注"
PS C:\study\Frontend-hhooke> git stash list
stash@{0}: On master: 這是備注