iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
Modern Web

Git 起來!每日一招學起來系列 第 9

Day 9:git stash —— 臨時收納箱,切分支不用慌

  • 分享至 

  • xImage
  •  

開發時,你是否有過這種尷尬情境:

「我正在 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

💡 範例流程:

  1. 修改三個檔案,但不 commit
  2. git stash → 工作目錄恢復乾淨
  3. 切換到 feature/login 修 urgent bug
  4. 回到 main → git stash pop 還原原本修改

進階技巧

1️⃣ 命名 stash

git stash push -m "half-done login form"

給 stash 加描述,方便日後辨識。

2️⃣ 暫存部分檔案

git stash push index.html style.css

只暫存指定檔案,其餘修改保持在工作目錄中。

3️⃣ 查看暫存差異

git stash show -p

可以檢查 stash 的詳細修改內容。


使用建議

  • 切換分支前:如果有未完成的工作,先用 git stash 暫存。
  • 多任務開發:對不同任務的修改可以分別 stash,避免互相干擾。
  • 配合 git switch / git checkout:安全切換分支,不丟失修改。

踩雷小故事 🪤

小明在 main 分支上修改了 10 個檔案,還沒 commit 就直接切到 develop 修 bug,結果檔案亂掉,花了半天才救回來。

😅 後來學會用 stash,才發現:

「原來 Git 也有臨時收納箱,事情可以先放一邊,再慢慢處理!」


小挑戰 💪

  1. 修改一個檔案但不 commit
  2. git stash 暫存修改
  3. 切換分支做修改並 commit
  4. 回到原分支,用 git stash pop 還原修改
  5. git stash list 查看歷史 stash

小結

  • git stash = 臨時收納箱,先放一邊,保護你的半成品
  • 搭配 git switch / git checkout,切分支不用慌
  • 支援部分 stash、命名 stash,靈活又安全

學會 stash,你就像擁有了 Git 的小保險箱,隨時切換任務、切分支都不怕。


上一篇
Day 8:git checkout & git switch —— 穿梭分支與檔案版本
系列文
Git 起來!每日一招學起來9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言