手賤操作:git reset --hard sha1恢復時,把add的內容直接覆蓋掉,找不到**了。
因為只有add,git reflog無用,git fsck --lost-found 裡邊也找不到個啥。
ps:至今未找到.git/lost-found/other 資料夾在哪。真的奇了怪了。
恢復方法:
find .git/objects -type f
出現以下內容
-r--r--r-- 1 sssfff 1049089 297 5月 9 14:40 .git/objects/14/6d06f321393f8516bc8706582d3eb0bba6f6aa
-r--r--r-- 1 sssfff 1049089 298 5月 9 14:40 .git/objects/18/598b6f1900f7702bf01ae8c4598487d2775e39
-r--r--r-- 1 sssfff 1049089 868 5月 9 14:40 .git/objects/1f/85b7eb25d2d99e4c6a4a03ce868bd3b574d8ed
-r--r--r-- 1 sssfff 1049089 72 5月 9 14:40 .git/objects/1c/cfe7cb022a03df2c53e54ab9bbfffb8285a5d3
-r--r--r-- 1 sssfff 1049089 238 5月 9 14:40 .git/objects/17/071e43a3d821026a9600006d42dedfc47011d0
-r--r--r-- 1 sssfff 1049089 2574 5月 7 17:23 .git/objects/08/69c5f92dbb71bb6bc12ff9850d94ce395dfee2
-r--r--r-- 1 sssfff 1049089 1623 5月 7 17:23 .git/objects/23/bfb3dd4a2de0f6f62fc819e4c15c4d25d1580d
-r--r--r-- 1 sssfff 1049089 703 5月 7 17:23 .git/objects/13/ddb318becf57f02c9946bf40fad9e8c99f42f3
-r--r--r-- 1 sssfff 1049089 237 5月 7 17:20 .git/objects/2e/33878c9b51ecc668cca496fbcc3cf85f972bc7
使用 git cat-file -p sha1 --讀取內容
git cat-file -p 2e33878c9b51ecc668cca496fbcc3cf85f972bc7
sha1 的值為object後邊的
/2e/33878c9b51ecc668cca496fbcc3cf85f972bc7=》2e33878c9b51ecc668cca496fbcc3cf85f972bc7
這時候就出現**內容:
dddd test
手動去找麻煩:
此命令將所有flie sha1值都存入obj檔案裡
find .git/objects -type f | xargs ls -lt | sed 136q | awk '' | tee obj
然後使用nodejs指令碼跑一下git命令
var fs = require("fs");
let child_process = require('child_process');
const ar** = process.ar**
if (ar**.length <= 2)
const githref = ar**[2]
var data = fs.readfilesync('obj');
var arr = data.tostring().split(/[\s\n]/);
for (let i = 0; i < arr.length - 1; i++) > flie-$`;
child_process.exec(cmdstr, , function (error, stdout, stderr) else
});}console.log("程式執行完畢。");
簡陋版本缺點:
所有的生成的檔案都會在專案資料夾下邊。
用vscode全域性搜尋檔案找到丟失的檔案,然後利用git checkout 該刪除的就刪除。
參考:
git 刪除已經 add 的檔案
使用git rm命令即可,有兩種選擇,一種是git rm cached 檔案路徑 不刪除物理檔案,僅將該檔案從快取中刪除 一種是git rm f 檔案路徑 不僅將該檔案從快取中刪除,還會將物理檔案刪除 不會 到垃圾桶 建立目錄mkdir 建立檔案touch linux 刪除目錄很簡單,很多人還是習慣...
idea 新增的檔案使用git不能add
原因是 git 配置了本地的gitignore的檔案 問題解決 首先我們可以通過命令檢視全域性配置中是否有呼叫外部 非工程下 的gitignore檔案 git config l 1例如core.excluedesfile 這一項 如果發現如上圖中,有關於全域性gitignore的配置項,說明就是這個...
git為什麼有些檔案add不上去 Git的基本操作
git安裝完成之後,需要進行一些基本資訊設定 1.設定使用者名稱 git config global user.name your name 2.設定使用者郵箱 git config global user.email email example.com 注意 該設定在github主頁顯示誰提交了該...