2014年12月7日

使用Git的Stash功能

gitstash功能可以將你在當前branch上尚未commit的資料暫存起來,並將這些修改到一半的資料還原。
什麼時候會用到stash呢? 想像以下情境:
你正在某個branch(暫且稱為current_branch)上開發一些新功能;然而做到一半時,你意識到這些新功能應該要先另開一個新的branch(暫且稱為new_branch)才對。
這時候你會怎麼做?
硬著頭皮暫時把東西commit上current_branch?
或是手動將有變更的檔案自己複製下來,然後reset current_branch,建立new_branch,再將有變更的檔案手動複製過去?
當然,你有更好的選擇,那就是- 使用stash指令將尚未commit的資料暫存起來,然後切換到另一個branch,再使用stash pop叫出來。
直接來看範例(假設目前在current_branch):
git stash
git checkout new_branch
git stash pop
此外,Eclipse的egit, 以及Mac的SourceTree軟體中,都可以找到stash的按鍵。
善用stash指令,讓程式設計師更能妥善在應付開發時各種難以預期的狀況。