Stashes(暫存列表)
通過Stashes(暫存列表)可以臨時地保存一些還沒有提交的工作,以便在分支上不需要提交未完成工作,就可以清理工作目錄。
換而言之, 就是將當前的更改臨時擱置起來,在需要的時候,可以返回先前的工作目錄狀態。
默認情況下,僅儲藏當前跟蹤文件中的更改,新文件將被忽略。
可以獨立地創建和應用多個stash。
常用命令
- 執行
git stash
可以將手當前工作目錄狀態臨時保存,可以執行git stash apply
或git stash pop
可以恢復保存的工作目錄狀態。 - 執行
git stash
後,git status
將顯示無任何改動,但可以通過git stash list
查看保存的stash。
git stash # Temporarily stores all modified tracked files
git stash list # Lists all stashed changesets
git stash pop <stash> # Restores the stashed files, and delete the stashed files
git stash apply <stash> # Restores the stashed files, and reserve the stashed files
git stash clear # Remove all the stashed states
存儲當前的修改,但不提交commit
git stash
-u
或者--include-untracked
參數,可以stash untracked文件-a
或者--all
參數,可以stash當前目錄下的所有修改-p
或者--patch
參數,可以交互式stash當前目錄下的指定修改- 無參數,默認存儲當前已跟蹤的修改
存儲當前的修改,但不提交commit, 並指定標識信息
git stash save <message>
查看stash內容
git stash show
- 無參數, 默認查看最新的stash和最新提交的diff結果
<stash@{n}>
參數, 查看指定stash和最新提交的diff結果-p <stash@{n}>
參數, 查看指定stash和最新提交的diff結果, 已git diff
方式顯示
回到某個stash的狀態, 如果沒有指定參數,將回到最近stash的狀態
git stash apply/pop <stash@{n}>
- apply方式,將指定的stash應用到當前工作目錄,對應的stash仍保留在stashes(暫存列表
- pop方式,將指定的stash應用到當前工作目錄,並刪除對應的stash
從指定的stash創建一個新分支,如果沒有指定stash,默認爲最近的stash
git stash branch <branch-name> <stash@{n}>
刪除指定的stash, 如果沒有指定stash,默認爲最近的stash
git stash drop <stash@{n}>
執行 rebase 之前自動 stash
git rebase --autostash