[英]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.