git 只add後reset,找add的檔案

2021-10-05 22:25:02 字數 2264 閱讀 3536

手賤操作: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主頁顯示誰提交了該...