git 通過husky提交代碼報錯導致代碼丟失(只add了未commit的代碼)

項目中使用了eslint,以及lint-staged,在執行git commit 時會觸發 git 的 pre-commit 鉤子,對代碼做一次檢查及格式化。由於個別文件中有TS報錯,導致commit失敗,並拋出了具體文件路徑,當我在命令行點擊路徑時發現新增得文件沒了(.ts、.vue、圖片),仔細一看引用過這些文件得代碼也沒了,比如路由表中得代碼、新加的接口請求都沒有了(心想要哭死,要重寫好多了)

一、直接將最近30天內的記錄單獨提取成一個txt文件到目錄下

find .git/objects -type f | xargs ls -lt | sed 30q > file.txt

二、然後通過vscode光標把不要的格式全部刪除,保留想要的格式

保留這樣的格式 5ed849fb10190b2db704d44e421a5fed00e22949 (切記/要刪掉)

三、創建腳本並執行腳本

本地新建 files 文件夾, 否則會報找不到files文件夾導致寫入失敗
本地創建 build.sh 文件用於寫入命令如下

for line in `cat file.txt`
do
        echo "File:${line}"
        git show ${line} > files/${line}.txt
done

四、還原文件

最後一步自己手動找到files 文件夾下的內容去比較,然後在複製進去,雖然麻煩但總比在寫一遍好啊

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