git stash 和unstash的使用操作,git unstash failed

場景如下,你正在開發需求1時,突然線上發現瞭一個bug,需要立即修復。需求1的代碼因為不完善,也沒經過測試,所以你希望針對需求1所做的修改先暫時隱藏,這樣就可以使用 stash功能瞭。

VCS–>git –>stash

這個時候針對需求1做的修改都會隱藏掉。現在假設你處理bug完畢。需要繼續開發需求,現在需要unstash

VCS–>git–>Unstash,選中你剛剛的stash,選中Pop stash。點擊pop stash即可。如下圖:

但是我這裡遇到個問題,屏幕右下角有如下提示:

點擊View them,發現是.DS_store 文件,這個我已經在.gitignore中聲明忽略該文件瞭。所以我的localChanges中並沒有該文件。

沒辦法,隻有先修改.gitignore,不忽略.DS_store.然後執行git status 能看到兩個文件被修改瞭

然後執行git checkout — ../.DS_Store 即回滾 .DS_store。然後重新unstash,ok。

然後也需要回滾.gitignore

補充:git臨時保存git stash命令

(1)git stash save “save message” 執行存儲時,添加備註,方便查找,隻有git stash 也是可以的,但查找時不方便識別。

(2)git stash list 查看stash瞭哪些存儲

(3)git stash show 顯示做瞭哪些改動,默認show第一個存儲,如果要顯示其他存貯,後面加stash@{$num},比如第二個 git stash show stash@{1}

(4)git stash show -p 顯示第一個存儲的改動,如果想顯示其他存存儲,命令:git stash show stash@{$num} -p ,比如第二個:git stash show stash@{1} -p

(5)git stash apply 應用某個存儲,但不會把存儲從存儲列表中刪除,默認使用第一個存儲,即stash@{0},如果要使用其他個,git stash apply stash@{$num} , 比如第二個:git stash apply stash@{1}

(6)git stash pop 命令恢復之前緩存的工作目錄,將緩存堆棧中的對應stash刪除,並將對應修改應用到當前的工作目錄下,默認為第一個stash,即stash@{0},如果要應用並刪除其他stash,命令:git stash pop stash@{$num} ,比如應用並刪除第二個:git stash pop stash@{1}

(7)git stash drop stash@{KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲  丟棄stash@{num}存儲,從列表中刪除這個存儲

(8)git stash clear 刪除所有緩存的stash

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: