Git - 暫存列表(stashes)

Stashes(暫存列表)

通過Stashes(暫存列表)可以臨時地保存一些還沒有提交的工作,以便在分支上不需要提交未完成工作,就可以清理工作目錄。
換而言之, 就是將當前的更改臨時擱置起來,在需要的時候,可以返回先前的工作目錄狀態。
默認情況下,僅儲藏當前跟蹤文件中的更改,新文件將被忽略。
可以獨立地創建和應用多個stash。

常用命令

  • 執行git stash可以將手當前工作目錄狀態臨時保存,可以執行git stash applygit 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章