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。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- IDEA:Git stash 暫存分支修改的實現代碼
- 解決idea 暫存文件或idea切換分支代碼丟失的問題
- 簡述IDEA集成Git在實際項目中的運用
- 45個GIT經典操作場景使用詳解
- Git多人協同開發緊急修復線上bug操作指南