iT邦幫忙

2021 iThome 鐵人賽

DAY 27
2
Modern Web

曼曼來比較快_Git 版本控制系列 第 27

【Day27】Git 版本控制 - Stash 暫存

身為一名工程師真的很討厭被打斷工作,當你沈浸在 coding 的世界時,如果有人來吵鬧真的會很想揍他一拳。
可是,就有那麼一個人,就算他打亂了你的行程你還是只能笑著跟他說「好!」
沒錯!他就是我們偉大的老闆。(老闆說的哪次不好拉)

如果老闆跟你說「先暫停這個工作,來處理這個問題」,你也只能摸摸鼻子乖乖聽話,但是現在做到一半的工作怎麼辦?要直接 commit 嗎?但是這個內容還很雜亂,如果 commit 很沒意義欸!

登愣登愣~這個時候,就可以使用「 Stash 暫存」這個功能了!

Stash 是什麼?
他是一個可以讓你將目前的工作先暫存起來,然後你就可以先去解決其他問題,等到你處理完就可以再回去暫存將那些未完成的工作取出繼續處理。

暫存到 Stash

首先,我們先使用 git status 查看目前狀況,我們可以觀察到 head.pptx 跟 project.py 這兩個檔案都還沒被加到索引中,但我們現在臨時需要做別件事,這些檔案該怎麼辦呢?

沒錯!就可以使用 git 的 stash 功能了

git stash

使用 git stash 後,再利用 git status 來觀察會發現檔案都不見了

那些檔案去哪裡了呢?可以使用 git stash list 列出暫存空間裡的清單

從 Stash 取出

當你處理完問題後,想再把剛剛未完成的檔案取出,只要輸入以下指令

git stash pop

上面這個指令會 pop 出第一個 stash,倘若要指定編號的話可以使用以下指令

git stash pop stash@{n}

可以看到這兩個檔案又回來了!也可以再使用 git status Double check

需要注意的一點!!在進行 git stash pop 時要先將 git status 內的檔案清空,否則有可能會發生衝突。

Reference

檔案暫存· Git
【狀況題】手邊的工作做到一半,臨時要切換到別的任務


上一篇
【Day26】Git 版本控制 - merge 發生衝突
下一篇
【Day28】Git 版本控制 - GitBook 簡介
系列文
曼曼來比較快_Git 版本控制30

1 則留言

1
juck30808
iT邦新手 3 級 ‧ 2021-10-12 18:37:28

恭喜大大即將完賽XD !!!

我要留言

立即登入留言