開發時,你是否有過這種尷尬情境:
「我正在 main 分支改功能,突然老闆丟下一個 urgent bug,要我去另一個分支修。
可是手上的工作還沒完成,也不想 commit 半成品……怎麼辦?」
這時候,git stash
就像一個臨時收納箱,把你手上的修改先收起來,暫時放一邊,等你空閒再拿出來處理。
git stash
是什麼?簡單來說,就是可以把 工作目錄中尚未 commit 的修改暫存起來,保護你的半成品不被覆蓋。
想像一下:你在開發新功能時,手上有一堆「半成品」,突然要切分支去修緊急 bug。
不用慌,stash 就像臨時衣櫃,先把東西放進去,切換分支後再拿回來。
用途包括:
# 暫存修改
git stash
# 查看 stash 列表
git stash list
# 奪回暫存的修改(stash 還在)
git stash apply
# 奪回暫存修改並刪除 stash
git stash pop
💡 範例流程:
git stash
→ 工作目錄恢復乾淨feature/login
修 urgent buggit stash pop
還原原本修改git stash push -m "half-done login form"
給 stash 加描述,方便日後辨識。
git stash push index.html style.css
只暫存指定檔案,其餘修改保持在工作目錄中。
git stash show -p
可以檢查 stash 的詳細修改內容。
git stash
暫存。小明在 main 分支上修改了 10 個檔案,還沒 commit 就直接切到 develop 修 bug,結果檔案亂掉,花了半天才救回來。
😅 後來學會用 stash,才發現:
「原來 Git 也有臨時收納箱,事情可以先放一邊,再慢慢處理!」
git stash
暫存修改git stash pop
還原修改git stash list
查看歷史 stashgit stash
= 臨時收納箱,先放一邊,保護你的半成品git switch
/ git checkout
,切分支不用慌學會 stash,你就像擁有了 Git 的小保險箱,隨時切換任務、切分支都不怕。