柚子快報(bào)激活碼778899分享:git stash 用法總結(jié)
柚子快報(bào)激活碼778899分享:git stash 用法總結(jié)
1.作用
這個(gè)命令可以將當(dāng)前的工作區(qū)域的代碼暫存起來,在需要的時(shí)候再恢復(fù)使用。
2. 使用場景
????????在使用git的時(shí)候,我們往往會(huì)建一個(gè)自己的分支去修改和調(diào)試代碼, 如果別人或者自己發(fā)現(xiàn)原有的分支上有個(gè)不得不修改的bug,這時(shí),我們不得不暫停手頭上的工作,切換到另外的分支去修復(fù)錯(cuò)誤,我們往往會(huì)把完成一半的代碼commit提交到本地倉庫,然后切換分支去修改bug,改好之后再切換回來,這樣的話往往log上會(huì)有大量不必要的記錄。
????????如果我們不想提交完成一半或者不完善的代碼,但是卻不得不去修改一個(gè)緊急Bug,那么使用?git stash?就可以將你當(dāng)前未提交到本地(和服務(wù)器)的代碼推入到Git的棧中,這時(shí)候你的工作區(qū)間和上一次提交的內(nèi)容是完全一樣的,所以你可以放心的修Bug,等到修完Bug,提交到服務(wù)器上后,再使用git stash pop將以前一半的工作代碼恢復(fù)回來就可以了。
3. 細(xì)節(jié)與注意
默認(rèn)情況下,git stash會(huì)緩存下列文件:
添加到暫存區(qū)的修改(staged changes)Git跟蹤的但并未添加到暫存區(qū)的修改(unstaged changes)
但不會(huì)緩存以下文件:
在工作目錄中新的文件(untracked files)被忽略的文件(ignored files)
git stash命令提供了參數(shù)用于緩存上面兩種類型的文件。
使用-u或者--include-untracked可以stash untracked文件。
使用-a或者--all命令可以stash當(dāng)前目錄下的所有修改。
4. 基本用法?
?保存:git stash
> 將當(dāng)前工作區(qū)和暫存區(qū)的更改保存到一個(gè)棧結(jié)構(gòu)
> git stash
> 將當(dāng)前工作區(qū)和暫存區(qū)的更改保存到一個(gè)棧結(jié)構(gòu),并附帶一個(gè)信息
> git stash save "message"
> 將當(dāng)前工作區(qū)和暫存區(qū)的更改保存到一個(gè)棧結(jié)構(gòu),包括新增的文件?
> git stash -u
> git stash --include-untracked
> 將當(dāng)前工作區(qū)和暫存區(qū)的更改保存到一個(gè)棧結(jié)構(gòu),包括新增的文件以及忽略的文件
> git stash -a
> git stash --all??
查看棧中保存的更改:git stash list?
> 查看棧中所有保存的更改
> git stash list
?查看更改的具體內(nèi)容:git stash show
????????顯示做了哪些改動(dòng),默認(rèn)show第一個(gè)存儲(chǔ),如果要顯示其他存儲(chǔ),后面加stash id,比如第二個(gè) git stash show stash@{1},完整的差異可以使用git stash show -p。
> 查看棧中第一個(gè)更改的具體內(nèi)容
> git stash show
> 查看棧中指定的更改的具體內(nèi)容
> git stash show
?恢復(fù):git stash apply
????????將stash緩存堆棧中第一個(gè)stash應(yīng)用到當(dāng)前的工作目錄下,但是不會(huì)刪除緩存堆棧中的緩存,默認(rèn)使用第一個(gè)存儲(chǔ),即stash@{0},應(yīng)用某個(gè)stash后面加stash id。
> 將棧中的第一個(gè)更改恢復(fù)到當(dāng)前工作區(qū)和暫存區(qū)
> git stash apply
> 將棧中的指定的更改恢復(fù)到當(dāng)前工作區(qū)和暫存區(qū)
> git stash apply
?刪除:git stash drop
????????刪除stash@{$num}存儲(chǔ),從列表中刪除這個(gè)存儲(chǔ),默認(rèn)刪除第一個(gè)。
> 刪除棧中的第一個(gè)更改
> git stash drop
> 刪除棧中的指定的更改
> git stash drop
?恢復(fù) & 刪除:git stash pop
> 將棧中的第一個(gè)更改恢復(fù)到當(dāng)前工作區(qū)和暫存區(qū),同時(shí)刪除棧中的第一個(gè)更改 > git stash pop
> 將棧中的指定的更改恢復(fù)到當(dāng)前工作區(qū)和暫存區(qū),同時(shí)刪除棧中的指定的更改 > git stash pop
清空:git stash clear?
>?清空棧中保存的更改 > git stash clear
?git stash branch
?????????這條命令會(huì)根據(jù)最近的 stash 創(chuàng)建一個(gè)新的分支,然后刪除最近的 stash(和 stash pop 一樣),如果你需要某個(gè) stash可以指明 stash id。
?
柚子快報(bào)激活碼778899分享:git stash 用法總結(jié)
參考鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。