項目中使用了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
文件夾下的內容去比較,然後在複製進去,雖然麻煩但總比在寫一遍好啊