从git文件删除后如何恢复文件?

Posted

技术标签:

【中文标题】从git文件删除后如何恢复文件?【英文标题】:How to restore files after deletion from git file? 【发布时间】:2022-01-01 23:10:35 【问题描述】:

我在做一个项目,但我的 Mac 出现了问题。在主管将我的分支合并到主分支后,我将 git 项目与 § git pull

在那之后我做到了 § git status

我发现有一个名为“.DS_Store”的新文件 当我在互联网上阅读以删除此文件时,我使用了以下命令: § find . name '.DS_Store' -type f -delete

但不幸的是,我的 git 目录中的所有文件都被删除了!!!! 如果我输入 § ls -a只有“.git”文件!

现在,如果我输入 § git status 我从计算机上的随机位置获得了一个随机文件列表作为要提交的更改,另一个列表作为未暂存以进行提交的更改和一个未跟踪文件的列表

请帮我解决这个问题!

【问题讨论】:

git reset --hard ? 它不起作用。我什至看不到树枝。如果我输入$git branch我什么也得不到!我认为这条删除线搞砸了整个项目,我必须再次克隆它!这很痛苦,因为我有一个本地分支正在处理它并且我隐藏了更改。 :( @Ôrel git/ 的内容也被完全删除。没有什么可以恢复的。 @RashidKatamesh 从备份恢复或重新克隆是您唯一的选择。 @phd 如何恢复备份? 【参考方案1】:

我看到了 3 个错误。

№1:省略重要破折号:name 必须是 -name。整个命令必须是

find . -name .DS_Store -type f -delete

№2:您还没有调试过危险的(因为-delete)命令。你一定跑过

find . -name .DS_Store -type f

在使用-delete 运行它之前。

№3:您没有本地备份。你应该。进行定期备份。我在工作时每天对家庭服务器进行 3-5 次小型备份;我每周五晚上做一次完整备份;我将完整备份存储在家庭服务器和世界不同地区的远程服务器上;我每隔几个月将备份复制到 USB 磁盘(硬盘和 SSD)。

您目前最好的做法是从远程存储库重新克隆。如果您不记得网址,请找出或询问您的队友。

【讨论】:

【参考方案2】:

当您从服务器中提取您的 git 存储库时,您应该在服务器上拥有实际的存储库。因此,只需删除您当前的本地存储库,然后从远程服务器再次拉取它。

【讨论】:

【参考方案3】:

编辑:在给出这个答案时,OP 仍然有他的 .git 目录。根据问题达到的程度,这可能已经解决了 OP 的问题。它是一种选择,而不是唯一可能的答案。

如果你还有 .git 文件,那就帮自己一个大忙,然后运行

git reflog

这应该会给你以前执行的命令的列表。这将包括类似于 git log 的命令附近的 sha

首先向下迭代该列表,直到到达“固定存储库”

如果这没有帮助,那么你可能不得不重新克隆 g​​it repo 并不幸重新开始。

【讨论】:

.git/ 的全部内容被完全删除。 git 命令不再起作用。 下次更新 .git 目录被删除的原始答案。在撰写答案时,此信息尚未披露,并且有可能弥补您的错误。

以上是关于从git文件删除后如何恢复文件?的主要内容,如果未能解决你的问题,请参考以下文章

git删除之后怎么恢复

git删除了所有内容,如何恢复文件和文件夹

Git:恢复一个已经在提交中被删除的文件

markdown 如何从项目git commit history中查找和恢复已删除的文件

github使用——如何恢复被删去文件。

git找回一个已经从远程仓库删除的文件