Git - git stash基本使用

在自己分支改代碼改的正爽,這個時候來了個bug需要切到develop分支,這個時候想切換分支但是當(dāng)前分支改動一大堆,既不想提交自己分支沒改完的代碼,又不能撤銷,就可以使用git stash這個命令,它可以將你現(xiàn)在的工作現(xiàn)場保存在一個棧里,等你去別的分支改完bug回來后,再使用git stash apply命令,就可以恢復(fù)你的工作現(xiàn)場了,回來后所有你修改的代碼仍然是未修改的狀態(tài),這樣可以繼續(xù)你的思路,看看哪些是正在修改的地方而不至于匆忙commit回來后漏掉之前修改的地方了。
用過的人會覺得很簡單,沒用過的人還得在網(wǎng)上搜一圈,感覺也不是很直觀,下面說一下簡單使用:

一.stash

工作現(xiàn)場

可以看到我現(xiàn)在在自己的test分支,在項(xiàng)目中的某一個文件里加入了一個fuck方法,現(xiàn)在我吃了一個bug,需要切換到develop分支而我又不想提交這個fuck方法,那么我就先stash一下,這里我用的是Sourcetree,命令行也是一樣的。


stash.png

點(diǎn)擊Sourcetree的stash按鈕。


stash message

這里可以輸入一個statsh的message,和commit時的message一樣,方便記錄你的stash信息,下面有個選項(xiàng)keep staged changes暫時沒發(fā)現(xiàn)干啥用的,可勾可不勾。


stash完

可以看到stash完以后當(dāng)前分支已經(jīng)看不到任何修改了,這樣我就可以隨便切換到我想去的分支了,假設(shè)我切到develop分支改掉了那個bug,現(xiàn)在又切會test分支,現(xiàn)在我要恢復(fù)剛才我修改fuck方法的那個現(xiàn)場,有兩種方式,1.Sourcetree 2.命令行。

二.恢復(fù)

1.Sourcetree恢復(fù)

image.png

最新版Souretree左邊欄最底部就能看到一欄STASHES,這里看到了我之前的在test分支上的stash,直接雙擊


stash

彈框出來問你是否恢復(fù)后要刪除這項(xiàng)stash,刪不刪隨你,這里我就不刪了。

2.命令行恢復(fù)

ternimal

(1).從Sourcetree打開終端。

git stash apply

(2).輸入git stash apply命令

以上兩種方式結(jié)束后:


恢復(fù)現(xiàn)場

是不是很驚喜,你修改的文件和代碼,又回到之前的狀態(tài)了,還是那個熟悉的fuck方法。

三.注意

注意點(diǎn):對于新加入的文件,在stash的時候一定要將它們勾選到staged files(暫存區(qū))中,不然是不會被stash的。

unstaged files

上面的dddd.h、dddd.m和一張蒙層.png都是新加入的文件,這幾個文件沒有被勾選進(jìn)staged files(暫存區(qū))是不會被stash的,應(yīng)該像下面這樣


staged files

以上基本就是stash的快速入門了,當(dāng)然他也有高級的用法,目前項(xiàng)目中我覺得會這種最基本的就可以解決我開頭提到的痛點(diǎn)了。

四.總結(jié)

1.點(diǎn)擊Sourcetree上方的stash按鈕,輸入message
2.點(diǎn)擊Sourcetree上方的Ternimal按鈕
3.在Srourcetree左下方切回stash或者在命令行中輸入git stash apply
3步搞定,是不是非常的酷??。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容