當你使用 git 正在開發一個功能的時候,如果你突然需要到另一個分支去開發卻不想放棄當前的改動的時候,你可以使用 git stash
命令
git stash list
列出所有儲藏
git stash show [<stash>:Number]
顯示某一個(默認最近一個)儲藏詳情
git stash drop [-q|--quiet][<stash>]
刪除某一個(默認最近一個)儲藏
git stash ( pop | apply ) [--index][-q|--quiet] [<stash>]
恢復儲藏並刪除 (pop) / 不刪除 (apply) 恢復的儲藏
git stash branch <branchname> [<stash>]
從儲藏創建分支
git stash [push [-p|--patch]-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [-m|--message <message>] [--] [<pathspec>…]]
儲藏,但默認不會儲藏未跟蹤的文件和被忽略的文件
git stash clear
刪除所有儲藏
git stash create [<message>]
創建一個懸空提交 (dangling commit),不會將 ref 存儲在任何地方,使用 git stash store 保存它
git stash store [-m|--message <message>][-q|--quiet] <commit>
存儲上一個命令中創建的懸空提交
參數
-
-q|--quiet
靜默模式 -
-p|--patch
以 patch 方式 push stash -
-k|--[no-]keep-index
保留 index 序號 -
-u|--include-untracked
untracked 狀態的文件也會被 push -
-a|--all
untracked 和 ignored 的文件也會被 push -
-m|--message <message>
輸出 stash 信息 -
-- [<pathspec>]
針對特定的路徑 push
參考資料:
- Git - git-stash Documentation
- Git - 儲藏(Stashing)
- “git stash create x” - Where is it? - StackOverflow