stash 乙個極度實用的Git操作

2021-09-13 02:22:49 字數 1344 閱讀 3554

今天要介紹的 git 操作就是 stash,毫不誇張地說,每個用 git 的開發人員都一定要會懂怎麼使用。

在介紹之前,不知道你有沒有和我一樣的經歷:某一天,我正在乙個 feature 分支上高高興興地寫著(ba)代(a)碼(ge)。突然線上環境報錯了,是我負責的部分,此時當然是救火要緊哈,準備停下手中的工作準備切 master 分支 checkout 個 hotfix 分支出來。

腦袋正閃出這個想法的時候,咦,發現有點不對勁了 —— 此時我的 feature 分支功能還沒做完,comment 上去沒意義呀!將修改全部刪掉更是不可能,這輩子都是不可能的,那這要怎麼辦呢?

如果這時能把這個 feature 分支中,還沒寫好的**找個地方先藏起來,等到要用的時候再拿出去就完美了。

好了,今天要介紹的主角就能實現我們的需求。我們來看下 stash 這個功能到底是怎麼使用的。

假如我現在的**是這樣的:

public static void main(string args)
接著上面的情景,我需要把正在開發的**給藏起來,那麼直接使用 git stash 命令即可,使用後就會變成這樣的效果:

public static void main(string args)
好了,正在 feature 分支還沒寫完的**已經被藏起來了,此時,好奇心滿滿的你想著,它是被藏到**去呢?一頓谷歌之後,你發現可以通過這個命令檢視 git stash list,如圖:

圖中的 stash@(0) 就是被藏起來的記錄了,知道真相的你這下可以放心地去處理線上問題了。

你很牛皮,線上問題沒一會功夫就搞定了,此時你再次切回剛才的 feature 分支,想要把剛才藏起來的**拿出來。好了,一頓谷歌之後,你發現有兩種拿的方法,分別是:

1、git stash pop

那這兩者有什麼不同呢?還記得剛才提交到 git stash list 命令顯示的結果嗎?—— stash@(0)

git stash pop 的是恢復剛才被藏起來的**,同時刪除 stash@(0) 這條記錄也刪了,此時你再使用 git stash list 命令就沒有結果了:

最後,如果你在乙個分支上使用了 n 次 git stash 命令,那麼就會有 stash@(0)、stash@(1)、...、stash@(n),對應一共有 n 條記錄。

那我們要這麼多條記錄有什麼用呢?

ok,以上就是全部內容了,希望對你有幫助。

乙個實用的類

myurlutil.as public class myurlutil 得到url後的指定的key對應的value public function getvaluebykey str string,key string string break return null 用法 if this.pare...

乙個Daily Build實用模型

daily build包含的範圍甚廣,如源 控制,daily build主機設定,ant的使用,任務計 劃,持續整合等.本文不打算討論這些內容,而僅就乙個daily build實用模型進行分析.假定我們的專案名稱為project,目錄d project 子系統project1,目錄d project...

乙個Daily Build實用模型

daily build包含的範圍甚廣,如源 控制,daily build主機設定,ant的使用,任務計 劃,持續整合等.本文不打算討論這些內容,而僅就乙個daily build實用模型進行分析.假定我們的專案名稱為project,目錄d project 子系統project1,目錄d project...