[英]Undo 'git reset --hard' before first commit
基本上我在本地機器上有一個代碼庫,我運行:
git init
git add .
此時,我意識到我想添加一個.gitignore文件。
所以我認為我需要取消提交,並在業余動作中執行以下命令
git reset --hard
現在我的整個代碼庫都消失了......
這個可以撤銷嗎??
git add.
已將您的文件內容添加到 git 中; 不幸的是,它沒有創建一個“目錄”結構來列出您的文件及其名稱。
你可以做什么:
跑
git fsck --full --unreachable --no-reflog | grep blob > blobs.txt
# the content of blobs.txt will look like :
unreachable blob 08bf360988858a012dab3af4e0b0ea5f370a2ae8
unreachable blob 21bf7ea93f9f9cc2b3ecbed0e5ed4fa45c75eb89
unreachable blob 08c12ef37075732cf4645269ab5687ba6ba68943
...
對於每個 blob,您可以將內容轉儲到磁盤:
cat blobs.txt | awk '{ print $3 }' | while read blobid; do
git show $blobid > $blobid.txt
done
您現在將擁有一個文件列表:
08bf360988858a012dab3af4e0b0ea5f370a2ae8.txt
21bf7ea93f9f9cc2b3ecbed0e5ed4fa45c75eb89.txt
08c12ef37075732cf4645269ab5687ba6ba68943.txt
...
好消息是: git add.
應該在那里代表。
壞消息是:
node_modules/
文件夾,因此您將擁有您添加的所有 js 庫的代碼......),src/my_controller.js
、 src/model/my_model.js
... 您可以應用的第一個過濾器,以嘗試node_modules/
文件:
grep -e some_package_I_remember
),package.json
(您也可以找到鎖文件),然后運行npm install
或yarn install
node_modules/
文件夾,它看起來很像你之前的一個node_modules/
文件夾,並創建一個提交,git fsck... > blobs.txt
,您應該有一個不在node_modules
下的列表...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.