【IDEA】程式碼未提交(commit)拉取(pull) 遠端程式碼導致程式碼全部丟失的bug
阿新 • • 發佈:2020-10-20
問題描述
今天早上拉取公司伺服器程式碼後遇見了一個非常奇怪的問題:自己先前費了兩天寫的程式碼檔案全部丟失了!!!而且馬上到了任務截止時間,此刻我的心情…
分析問題
冷靜了3秒後,憑藉多年的經驗我的第一反應看控制檯 Event Log
有沒有提示什麼東東,果然我發現一絲絲線索:
通過上面的警告資訊後,原來是由於我未 commit
的檔案在更新之前自動儲存在 stash,接下來順便了解了 Git stash 的作用:將目前還不想提交的但是已經修改的內容進行儲存至堆疊中,後續可以在某個分支上恢復出堆疊中的內容(相當於將程式碼進行隱藏),看到這裡讀者們是不是和我一樣突然就悟出了一個真理!!! 那就是沒有提交的內容都會儲存至堆疊中
解決問題
此刻我們想將隱藏的程式碼進行恢復,那麼我們將會使用到 Git unstash命令,還好【IDEA】編輯器已經為我們提供了這個選項。VCS–>git–>Unstash
選中你剛剛的stash 先檢視其內容,可以看到我們之前丟失的程式碼檔案列表如下所示:
接下來選中Pop stash,點選pop stash即可
本以為一切順利,萬事大吉。但萬萬沒想到又出了一個問題。不過此刻的我穩如老狗:
根據右下角螢幕的錯誤資訊提示:本地更改會被merge所覆蓋
so 這裡點選view them 然後就看到了下面兩個檔案資訊:
.idea目錄下所有檔案,我已經在.gitignore中宣告忽略了,所以我的localChanges中並沒有該檔案。排查一番後檢視git提交的歷史,發現是其他同事將這個目錄下的檔案加入了版本控制並提交到git倉庫中