我正在按照制作github页面的说明进行操作,却忘记向下移动到我的git子目录中。结果,我只是使用来替换整个文档目录git clean -fdx
。
有什么办法可以消除这个可怕的错误?
git clean
通话省去很多麻烦。另外,请尝试摆脱未经检查的清洁习惯。创建一个可以被调用的Powershell或Bash脚本,该脚本将git clean -fdxn
在您实际运行令人难以置信的破坏性清理之前以确认提示运行。
我正在按照制作github页面的说明进行操作,却忘记向下移动到我的git子目录中。结果,我只是使用来替换整个文档目录git clean -fdx
。
有什么办法可以消除这个可怕的错误?
git clean
通话省去很多麻烦。另外,请尝试摆脱未经检查的清洁习惯。创建一个可以被调用的Powershell或Bash脚本,该脚本将git clean -fdxn
在您实际运行令人难以置信的破坏性清理之前以确认提示运行。
Answers:
否。这些文件不见了。
(仅在Linux上检查过:git clean调用unlink()
,并且不预先备份任何内容。)
git clean
意外删除了.idea
隐藏文件夹中的搁置更改,而“本地历史记录”救了我!
-n
除此之外,它适用于大多数git命令(以及许多其他* nix命令)。
否。“ git clean -fdx”将从您的工作目录中删除所有git不跟踪的文件和目录。因为Git不会跟踪这些文件,所以它不会有这些文件的任何备份。至少不是通常。
如果您最近在这些文件之一上执行了“ git add”操作(但中止了提交),则可以使用“ git fsck --lost-found”找到它。值得一试,但不要将希望寄予太大希望。
将来,您应该考虑犯几次而不是很少几次。这样,即使您最终没有将这些提交推送到远程,也将至少具有本地备份。
mkdir
-ing 后进入新的repo目录cd
正如上面提到的@kusma一样,如果您很幸运(如果您曾经做过“ git add”),则可以使用以下内容提取整个对象:
git fsck | awk '{print $3}' | xargs git show | tee searchresults.log
这样,它将查找所有类型的块,收集整个差异并添加到文件中,以提取丢失的文件。就我而言,我失去了整个Java类。
如果您正在使用Eclipse,则可能的解决方案之一是从Eclipse的本地历史记录中恢复。
其实是!这个有可能!但不使用git命令。
我们所需要的只是一个文件恢复工具,例如Recuva。
只需提及删除它的路径,然后让它恢复文件即可。
另外,以下是使用该应用程序的一些有用说明:
Advanced Mode
-> Options
-> Actions
-> Restore folder structure
警告!一旦丢失(意外删除)任何文件,请尝试不要触摸(添加/编辑文件)已删除文件所在的驱动器,以增加成功恢复的可能性。否则,您可能会完全丢失该文件。
工作原理: 删除文件时,实际上并没有删除它。它只是标记为“已删除”,因此,下次将文件添加/更新到同一驱动器时,那些旧文件将被新文件覆盖。但是,直到它们被覆盖,仍然可以读取(当然可以恢复)文件。
我使用了应该添加到存储库中的代码,并使用-dfx进行了清理,可以还原文件。
我尝试使用debugfs,从出现的inode,testdisk和许多其他工具中进行查找和链接,但没有一个人找到这个愚蠢的内容被误删除的目录。
从sourceforge 下载extundelete。
您可能需要安装e2fslibs-dev软件包
Run
$ ./configure
$ make
它将为src文件夹内的extundelete生成二进制文件。就我而言,我错误地擦除了一个文件夹。我们称之为FOOBAR
我跑了:
$ sudo ./extundelete --restore-directory <full path to FOOBAR > <the partition>
它创建了一个名为RESTORED_FOLDERS的文件夹
如果将git与MSBuild一起使用,我创建了一个目标,该目标将复制所有文件,然后执行git clean -xdf
。这样,如果您意识到已删除了不想删除的内容,则可以轻松还原该文件。在这里看看:http : //blog.3d-logic.com/2012/11/04/safe-git-clean-with-msbuild/