1. 程式人生 > 程式設計 >git stash暫存的操作方法

git stash暫存的操作方法

為什麼我們需要它

不得不說,在知道這個命令的時,以及之後的使用中,我都超級熱愛這個命令,因為它真的太好用了。

給大家說一下我使用這個命令的場景:

此時我在 feature_666 分支,非常聚精會神加持高專注地實現一個功能 666 模組,簡直鍵盤如飛的編寫程式碼~~~
然後這時,客戶反饋出一個 bug,非常嚴重,必須立馬解決,優先順序為 0 !!!
於是,我需要去到 release 分支去 checkout 新的分支去工作了,但是 666 功能還沒完成怎麼辦?
此時我面臨著一個選擇題:
A:提交後切換,程式碼儲存到分支 feature_666,卻產生一個無意義的提交
B:不提交直接切換,然而這個選項根本沒人會選。

是不是很難選,此時,別忘記還有 C 選項!

C:使用 git stash,將當前修改(未提交的程式碼)存入快取區,切換分支修改 bug,回來再通過 git stash pop 取出來。

1. 暫存操作

#檢視當前狀態
git status 
#如果有修改,新增修改檔案
git add .
#暫存操作
git stash save '本次暫存的標識名字'

2. 檢視當前暫存的記錄

#檢視記錄
git stash list

修改儲存到什麼位置了?

當我們使用 git init給專案新增版本控制的時候,會在專案路徑下生成一個 .git 隱藏資料夾。.git 中儲存著版本管理的所有資訊。

.git/refs/stash 中,儲存的是最後一個 stash 對應的節點指標

同樣,在 .git/log/refs/stash 中可以看到我們全部的 stash 記錄資訊

儲存多個 stash 的情況

ok,我們來嘗試一下修改檔案,然後再次使用 git stash,此時我們有個兩個 暫存修改,那麼怎麼檢視呢?

git stash list //檢視暫存區的所有暫存修改記錄

如果在未提交的情況下,執行 git stash 兩次,無法準確分辨兩個stash 具體修改的是哪些內容,這樣用,顯的偉大的 Git 一點都不智慧,怎麼可以!。

所以,在這種情況下,給 stash 儲存的修改起個名字,顯然非常重要,方式如下:

git stash save <message>

3. 恢復暫存的工作

‘pop命令恢復,恢復後,暫存區域會刪除當前的記錄'

#恢復指定的暫存工作,暫存記錄儲存在list內,需要通過list索引index取出恢復
git stash pop stash@{index}

‘apply命令恢復,暫存區域會保留當前的記錄'

#恢復指定的暫存工作,需要通過list索引index取出恢復
git stash apply stash@{index}

4. 刪除暫存

#刪除某個暫存,需要通過list索引index取出恢復
git stash drop stash@{index}
#刪除全部暫存
git stash clear

到此這篇關於git stash暫存的操作方法的文章就介紹到這了,更多相關git stash暫存內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!