首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能否取回因运行git还原-s@ -SW而消失的工作树中的文件?

我能否取回因运行git还原-s@ -SW而消失的工作树中的文件?
EN

Stack Overflow用户
提问于 2021-07-09 01:28:44
回答 1查看 241关注 0票数 1

我忘记将.ai添加到我的.gitignore文件中,但是运行$ git add .并将相当多的.ai文件添加到索引中。

当我运行$ git status并看到它们时,我想将它们从索引中删除。

我匆忙地运行了$ git restore -s@ -SW,导致所有的.ai文件都从我的工作树中消失了。我不应该使用W

有什么方法可以把我的.ai文件拿回来吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-09 07:55:16

首先,检查是否仍然可以通过“本地历史记录”访问这些文件(如IDE记录的那样,而不是Git)。

例如,局部历史VSCode扩展 (如建议在这里 )可以提供帮助。

如果没有,请重复检查您的操作系统备份功能,比如MacOS 时光机状态,以防您可以从备份中恢复它们。

最后,由于您已经将这些文件添加到索引中,所以git fsck

代码语言:javascript
复制
git fsck --cache --no-reflogs --lost-found --unreachable HEAD

从列出的SHA1中,您可以执行git show

代码语言:javascript
复制
git show "<SHA-1 REFERENCE TO THE BLOB OBJECT HERE>" > lost_file.txt

正如托瑞克评论中所指出的

请注意,您还可以在.git/lost-found/other目录中找到每个“不可访问的blob”的内容。 这通常比git show更快、更容易,因为您可以使用cd .git/lost-found/other,然后通过grep expected-string *查找具有预期字符串的文件。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68310226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档